• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

EcrituresNumeriques / stylo / 14198984573

01 Apr 2025 02:57PM UTC coverage: 31.929% (+0.2%) from 31.772%
14198984573

push

github

web-flow
feat: l'éditeur collaboratif devient l'éditeur par défaut! (#1378)

* feat: les changements des éditions collaboratives sont enregistrés periodiquement dans la copie de travail

* chore: supprime la notion de session collaborative

* chore: supprime le code lié aux sessions

* chore: met à jour la date de dernière modification du document

* fix: supprime useHistory (non utilisé)

* chore: ordre des imports

* fix: corrige les imports (linter)

* chore: corrige la migration des données

* chore: mise à jour de la configuration de yjs/collaboration

Utilise un nouveau dossier pour la persistence des données afin de
sécuriser la migration des données

* chore: plus besoin de faire un calc avec la position relative

* chore: supprime la validation pour les tests

474 of 711 branches covered (66.67%)

Branch coverage included in aggregate %.

63 of 197 new or added lines in 13 files covered. (31.98%)

424 existing lines in 8 files now uncovered.

4484 of 14817 relevant lines covered (30.26%)

2.27 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/front/src/components/collaborative/CollaborativeEditor.jsx
NEW
1
import React, { useCallback } from 'react'
×
2
import { useParams } from 'react-router-dom'
×
3
import useFetchData from '../../hooks/graphql.js'
×
NEW
4
import ArticleStats from '../ArticleStats.jsx'
×
5
import Loading from '../molecules/Loading.jsx'
×
6

NEW
7
import { getCollaborativeSession } from './CollaborativeSession.graphql'
×
8

9
import CollaborativeEditorArticleHeader from './CollaborativeEditorArticleHeader.jsx'
×
10
import CollaborativeSessionError from './CollaborativeSessionError.jsx'
×
UNCOV
11
import CollaborativeTextEditor from './CollaborativeTextEditor.jsx'
×
12

UNCOV
13
import styles from './CollaborativeEditor.module.scss'
×
14
import CollaborativeEditorMenu from './CollaborativeEditorMenu.jsx'
×
15

16
export default function CollaborativeEditor() {
×
17
  const { sessionId: collaborativeSessionId, articleId } = useParams()
×
18

19
  const {
×
20
    data: collaborativeSessionData,
×
21
    isLoading: collaborativeSessionLoading,
×
22
    mutate: mutateCollaborativeSession,
×
UNCOV
23
  } = useFetchData({ query: getCollaborativeSession, variables: { articleId } })
×
24

UNCOV
25
  const handleCollaborativeSessionStateUpdated = useCallback(({ state }) => {
×
UNCOV
26
    if (state === 'ended') {
×
UNCOV
27
      mutateCollaborativeSession()
×
UNCOV
28
    }
×
UNCOV
29
  }, [])
×
30

UNCOV
31
  if (collaborativeSessionLoading) {
×
UNCOV
32
    return <Loading />
×
UNCOV
33
  }
×
34

UNCOV
35
  if (
×
UNCOV
36
    collaborativeSessionData?.article?.collaborativeSession?.id !==
×
UNCOV
37
    collaborativeSessionId
×
UNCOV
38
  ) {
×
UNCOV
39
    return (
×
UNCOV
40
      <div className={styles.errorContainer}>
×
UNCOV
41
        <CollaborativeSessionError error="notFound" />
×
UNCOV
42
      </div>
×
43
    )
UNCOV
44
  }
×
45

UNCOV
46
  const collaborativeSessionCreatorId =
×
UNCOV
47
    collaborativeSessionData?.article?.collaborativeSession?.creator?._id
×
48

UNCOV
49
  return (
×
UNCOV
50
    <section className={styles.container}>
×
UNCOV
51
      <div className={styles.main} role="main">
×
UNCOV
52
        <CollaborativeEditorArticleHeader articleId={articleId} />
×
UNCOV
53
        <CollaborativeTextEditor
×
UNCOV
54
          articleId={articleId}
×
UNCOV
55
          collaborativeSessionCreatorId={collaborativeSessionCreatorId}
×
UNCOV
56
          collaborativeSessionId={collaborativeSessionId}
×
UNCOV
57
          onCollaborativeSessionStateUpdated={
×
UNCOV
58
            handleCollaborativeSessionStateUpdated
×
59
          }
UNCOV
60
        />
×
UNCOV
61
        <ArticleStats />
×
UNCOV
62
      </div>
×
UNCOV
63
      <CollaborativeEditorMenu articleId={articleId} />
×
UNCOV
64
    </section>
×
65
  )
UNCOV
66
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc