import { visuallyHidden } from "@mui/utils"; import React from "react"; import { connect } from "react-redux"; import { CharacterNotes, Constants, rulesEngineSelectors, } from "@dndbeyond/character-rules-engine/es"; import { TabFilter } from "~/components/TabFilter"; import { PaneInfo, useSidebar } from "~/contexts/Sidebar/Sidebar"; import { PaneComponentEnum } from "~/subApps/sheet/components/Sidebar/types"; import { appEnvSelectors } from "../../../Shared/selectors"; import { PaneIdentifierUtils } from "../../../Shared/utils"; import ContentGroup from "../../components/ContentGroup"; import { SheetAppState } from "../../typings"; interface NotesProps { notes: CharacterNotes; isReadonly: boolean; paneHistoryStart: PaneInfo["paneHistoryStart"]; } class Notes extends React.PureComponent { handleNotesManage = ( noteType: Constants.NoteKeyEnum, evt: React.MouseEvent ): void => { const { paneHistoryStart, isReadonly } = this.props; if (!isReadonly) { evt.stopPropagation(); evt.nativeEvent.stopImmediatePropagation(); paneHistoryStart( PaneComponentEnum.NOTE_MANAGE, PaneIdentifierUtils.generateNote(noteType) ); } }; renderNoteGroup( label: string, key: Constants.NoteKeyEnum, fallback: string = "" ) { const { notes } = this.props; let noteData = notes[key]; let hasContent: boolean = !!noteData; let content: string = !!noteData ? noteData : fallback; let classNames: Array = ["ct-notes__note"]; if (!hasContent) { classNames.push("ct-notes__note--no-content"); } return (
{content}
); } render() { return (

Notes

); } } function mapStateToProps(state: SheetAppState) { return { notes: rulesEngineSelectors.getCharacterNotes(state), isReadonly: appEnvSelectors.getIsReadonly(state), }; } const NotesContainer = (props) => { const { pane: { paneHistoryStart }, } = useSidebar(); return ; }; export default connect(mapStateToProps)(NotesContainer);