Skip to content

Commit

Permalink
Supprime CurrentUserContext (#1316)
Browse files Browse the repository at this point in the history
* fix: en fait, on n'utilisait même pas l'info ActiveUser pour créer un tag

* fix: supprime le UserContext… qui n'étaient pas utilisés

---------

Co-authored-by: Thomas Parisot <thom4parisot@users.noreply.github.com>
  • Loading branch information
thom4parisot and thom4parisot authored Mar 4, 2025
1 parent 758a4a9 commit 1b13fca
Show file tree
Hide file tree
Showing 8 changed files with 144 additions and 173 deletions.
133 changes: 65 additions & 68 deletions front/src/components/Articles.jsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { Loading, Modal as GeistModal, useModal } from '@geist-ui/core'
import React, { useCallback, useEffect, useMemo, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { shallowEqual, useSelector } from 'react-redux'
import { CurrentUserContext } from '../contexts/CurrentUser'
import { useSelector } from 'react-redux'
import { Search } from 'react-feather'
import { Helmet } from 'react-helmet'

Expand All @@ -25,7 +24,6 @@ import TagsList from './tag/TagsList.jsx'
export default function Articles() {
const { t } = useTranslation()
const { backendEndpoint } = applicationConfig
const currentUser = useSelector((state) => state.activeUser, shallowEqual)
const selectedTagIds = useSelector(
(state) => state.activeUser.selectedTagIds || []
)
Expand Down Expand Up @@ -221,83 +219,82 @@ export default function Articles() {
)

return (
<CurrentUserContext.Provider value={currentUser}>
<section className={styles.section}>
<Helmet>
<title>
{t('articles.page.title', {
workspace: activeWorkspace?.name ?? '$t(workspace.myspace)',
})}
</title>
</Helmet>
<section className={styles.section}>
<header className={styles.articlesHeader}>
<h1>Articles</h1>
{activeWorkspace && (
<WorkspaceLabel
color={activeWorkspace.color}
name={activeWorkspace.name}
/>
)}
</header>
<Field
className={styles.searchField}
type="text"
icon={Search}
value={filter}
placeholder={t('article.search.placeholder')}
onChange={(e) => setFilter(etv(e))}
/>

<aside className={styles.filtersContainer}>
<div className={styles.filtersTags}>
<h4>{t('tag.list.title')}</h4>
<TagsList />
</div>
</aside>
<header className={styles.articlesHeader}>
<h1>Articles</h1>
{activeWorkspace && (
<WorkspaceLabel
color={activeWorkspace.color}
name={activeWorkspace.name}
/>
)}
</header>
<Field
className={styles.searchField}
type="text"
icon={Search}
value={filter}
placeholder={t('article.search.placeholder')}
onChange={(e) => setFilter(etv(e))}
/>

<aside className={styles.filtersContainer}>
<div className={styles.filtersTags}>
<h4>{t('tag.list.title')}</h4>
<TagsList />
</div>
</aside>

<div className={styles.articlesTableHeader}>
<Button primary onClick={() => setCreateArticleVisible(true)}>
{t('article.createAction.buttonText')}
</Button>
<div className={styles.articleCounter}>
{t('article.count', { count: keepArticles.length })}
</div>
<div className={styles.articlesTableHeader}>
<Button primary onClick={() => setCreateArticleVisible(true)}>
{t('article.createAction.buttonText')}
</Button>
<div className={styles.articleCounter}>
{t('article.count', { count: keepArticles.length })}
</div>
</div>

<GeistModal
width="40rem"
visible={createArticleVisible}
{...createArticleModalBinding}
<GeistModal
width="40rem"
visible={createArticleVisible}
{...createArticleModalBinding}
>
<h2>{t('article.createModal.title')}</h2>
<GeistModal.Content>
<ArticleCreate
onSubmit={handleArticleCreated}
workspaceId={activeWorkspaceId}
/>
</GeistModal.Content>
<GeistModal.Action
passive
onClick={() => setCreateArticleVisible(false)}
>
<h2>{t('article.createModal.title')}</h2>
<GeistModal.Content>
<ArticleCreate
onSubmit={handleArticleCreated}
workspaceId={activeWorkspaceId}
/>
</GeistModal.Content>
<GeistModal.Action
passive
onClick={() => setCreateArticleVisible(false)}
>
{t('modal.close.text')}
</GeistModal.Action>
</GeistModal>
{t('modal.close.text')}
</GeistModal.Action>
</GeistModal>

{isLoading ? (
<Loading />
) : (
keepArticles.map((article) => (
<Article
key={`article-${article._id}`}
article={article}
onArticleUpdated={handleArticleUpdated}
onArticleDeleted={handleArticleDeleted}
onArticleCreated={handleArticleCreated}
/>
))
)}
</section>
</CurrentUserContext.Provider>
{isLoading ? (
<Loading />
) : (
keepArticles.map((article) => (
<Article
key={`article-${article._id}`}
article={article}
onArticleUpdated={handleArticleUpdated}
onArticleDeleted={handleArticleDeleted}
onArticleCreated={handleArticleCreated}
/>
))
)}
</section>
)
}
8 changes: 1 addition & 7 deletions front/src/components/Tag.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,9 @@ mutation updateTag(
mutation createTag(
$name: String!
$description: String
$user: ID!
$color: HexColorCode!
) {
createTag(
name: $name
description: $description
user: $user
color: $color
) {
createTag(name: $name, description: $description, color: $color) {
_id
name
description
Expand Down
3 changes: 0 additions & 3 deletions front/src/components/TagCreate.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { createTag, getTags } from './Tag.graphql'

import styles from './TagCreate.module.scss'
import Field from './Field'
import { useCurrentUser } from '../contexts/CurrentUser'

export default function TagCreate() {
const { setToast } = useToasts()
Expand All @@ -19,11 +18,9 @@ export default function TagCreate() {
const { state: description, bindings: descriptionBindings } = useInput('')
const { state: color, bindings: colorBindings } = useInput(randomColor())

const activeUser = useCurrentUser()
const { query } = useGraphQLClient()

const variables = {
user: activeUser._id,
name,
description,
color,
Expand Down
98 changes: 48 additions & 50 deletions front/src/components/corpus/Corpus.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import React, { useState, useEffect, useCallback } from 'react'
import { useTranslation } from 'react-i18next'
import { shallowEqual, useSelector } from 'react-redux'
import { Helmet } from 'react-helmet'
import { CurrentUserContext } from '../../contexts/CurrentUser'

import { useGraphQLClient } from '../../helpers/graphQL'
import { useActiveWorkspace } from '../../hooks/workspace.js'
Expand Down Expand Up @@ -80,65 +79,64 @@ export default function Corpus() {
])

return (
<CurrentUserContext.Provider value={currentUser}>
<section className={styles.section}>
<Helmet>
<title>
{t('corpus.page.title', {
workspace: activeWorkspace?.name ?? '$t(workspace.myspace)',
})}
</title>
</Helmet>
<section className={styles.section}>
<header className={styles.header}>
<h1>{t('header.corpus.link')}</h1>
{activeWorkspace && (
<WorkspaceLabel
color={activeWorkspace.color}
name={activeWorkspace.name}
/>
)}
</header>
<p className={styles.introduction}>{t('corpus.page.description')}</p>

<Button
type="secondary"
className={styles.button}
onClick={() => setCreateCorpusVisible(true)}
>
{t('corpus.createAction.buttonText')}
</Button>
<header className={styles.header}>
<h1>{t('header.corpus.link')}</h1>
{activeWorkspace && (
<WorkspaceLabel
color={activeWorkspace.color}
name={activeWorkspace.name}
/>
)}
</header>
<p className={styles.introduction}>{t('corpus.page.description')}</p>

<Button
type="secondary"
className={styles.button}
onClick={() => setCreateCorpusVisible(true)}
>
{t('corpus.createAction.buttonText')}
</Button>

<GeistModal
width="40rem"
visible={createCorpusVisible}
{...createCorpusModalBinding}
<GeistModal
width="40rem"
visible={createCorpusVisible}
{...createCorpusModalBinding}
>
<h2>{t('corpus.createModal.title')}</h2>
<GeistModal.Content>
<CorpusCreate onSubmit={handleCreateNewCorpus} />
</GeistModal.Content>
<GeistModal.Action
passive
onClick={() => setCreateCorpusVisible(false)}
>
<h2>{t('corpus.createModal.title')}</h2>
<GeistModal.Content>
<CorpusCreate onSubmit={handleCreateNewCorpus} />
</GeistModal.Content>
<GeistModal.Action
passive
onClick={() => setCreateCorpusVisible(false)}
>
{t('modal.close.text')}
</GeistModal.Action>
</GeistModal>
{t('modal.close.text')}
</GeistModal.Action>
</GeistModal>

{isLoading ? (
<Loading />
) : (
<ul className={styles.corpusList}>
{corpus.map((c) => {
return (
<li key={c._id}>
<CorpusItem corpus={c} />
</li>
)
})}
</ul>
)}
</section>
</CurrentUserContext.Provider>
{isLoading ? (
<Loading />
) : (
<ul className={styles.corpusList}>
{corpus.map((c) => {
return (
<li key={c._id}>
<CorpusItem corpus={c} />
</li>
)
})}
</ul>
)}
</section>
)
}
Loading

0 comments on commit 1b13fca

Please sign in to comment.