Editor Module Component (components/Editor/editorModule.tsx)¶
Overview¶
A React component that wraps the Lexical editor with additional functionality for managing editor state, view modes, and evidence handling. The component serves as a bridge between the application and the core editor implementation.
Features¶
- State management
- View mode control
- Evidence integration
- UUID handling
- Read-only states
- Export capabilities
- Collaboration support
- State persistence
- Event handling
- Responsive layout
Implementation¶
type EditorProps = {
stateID: string;
state: string;
shouldExport: boolean;
isFullView: boolean;
citedEvidence: citedEvidence | null;
evidence_scale: string | null;
isInitialState: boolean;
editedState: boolean;
clicked: boolean;
n_requests: number;
onStateChange: (newState: boolean) => void;
onClicked: (value: boolean) => void;
};
export function Editor({
stateID,
state,
shouldExport,
isFullView,
citedEvidence,
evidence_scale,
editedState,
clicked,
n_requests,
isInitialState,
onStateChange,
onClicked
}: EditorProps) {
const uuids = citedEvidence && citedEvidence.length > 0
? citedEvidence.flatMap(evidence => evidence.citations.map(citation => citation.uuid))
: [];
const readOnly = isFullView ? false : true;
return (
<div
id="editor-wrapper"
className="relative prose mx-auto w-5/6 max-w-full prose-slate prose-p:my-0 prose-headings:mb-4 prose-headings:mt-2"
>
<LexicalEditor
stateID={stateID}
state={state}
shouldExport={shouldExport}
isFullView={isFullView}
citedEvidence={citedEvidence}
evidence_scale={evidence_scale}
uuids={uuids}
readOnly={readOnly}
isInitialState={isInitialState}
n_requests={n_requests}
editedState={editedState}
onStateChange={onStateChange}
clicked={clicked}
onClicked={onClicked}
collaboratorID={collaboratorID}
/>
</div>
);
}
Dependencies¶
import { LexicalEditor } from "./lexicalEditor"
import { ExportInformation } from "./plugins/exportEditorStatePlugin"
import { citedEvidence } from "./citedEvidence"
import { EditorProps } from './types'
Components Used¶
Notes¶
- Manages editor state
- Controls view modes
- Handles evidence data
- Processes UUIDs
- Manages read-only states
- Supports collaboration
- Maintains responsiveness
- Handles state changes
- Manages click events
- Integrates with plugins
Props Description¶
stateID: Unique identifier for editor statestate: Current editor content stateshouldExport: Flag for export functionalityisFullView: Controls edit/read-only modecitedEvidence: Array of evidence citationsevidence_scale: Scale for evidence evaluationisInitialState: Flag for initial render stateeditedState: Tracks content modificationsclicked: Tracks user interactionsn_requests: Number of pending requestsonStateChange: State change callbackonClicked: Click event callback
Components Using This¶
Integration Points¶
- Lexical Editor configuration
- Evidence citation system
- Export functionality
- State management
- View mode controls
- Collaborative features
Notes¶
- Handles evidence UUID extraction
- Manages read-only state
- Supports collaborative editing
- Implements responsive design
- Uses prose styling for content
- Maintains state consistency