feat: selected area id in provider

This commit is contained in:
Joshua Shoemaker 2023-01-08 23:32:39 -06:00
parent 8369230b7c
commit c1ad2132ac
5 changed files with 9 additions and 5 deletions

View File

@ -56,7 +56,6 @@ function classNames(...classes: any[]) {
function Sidebar() {
const [selectedGroupId, setSelectedGroupId] = useState('')
const [selectedAreaId, setSelectedAreaId] = useState('')
const [isAddNewDocumentInputShowing, setIsAddNewDocumentInputShowing] = useState(false)
const [isAddNewGroupInputShowing, setIsAddNewGroupInputShowing] = useState(false)
const [isEditAreaNameInputShowing, setIsEditAreaNameInputShowing] = useState(false)
@ -71,6 +70,8 @@ function Sidebar() {
requestUpdateArea,
requestAddDocument,
requestAddDocumentGroup,
selectedAreaId,
setSelectedAreaId,
selectedDocumentId,
setSelectedDocumentId,
} = useProject()
@ -86,10 +87,6 @@ function Sidebar() {
return groupId
}
// const getGroupIdFromAreaId = (areaId: string) => {
// return navigation.find(g => g.documents.map(d => d.areas.map(a => a.id)).flat().includes(areaId))?.id
// }
const getDocumentIdFromAreaId = (areaId: string) => {
let documentId = ''
navigation.map(g => g.documents).flat().forEach(d => {

View File

@ -5,6 +5,7 @@ const makeDefaultProject = (): ProjectContextType => ({
id: '',
documents: [] as ipc.Document[],
groups: [] as ipc.Group[],
selectedAreaId: '',
selectedDocumentId: '',
getSelectedDocument: () => new ipc.Document(),
getAreaById: (areaId) => undefined,
@ -12,6 +13,7 @@ const makeDefaultProject = (): ProjectContextType => ({
requestUpdateArea: (updatedArea) => Promise.resolve(new ipc.Area()),
requestAddDocument: (groupId, documentName) => Promise.resolve(new ipc.Document()),
requestAddDocumentGroup: (groupName: string) => Promise.resolve(new ipc.Group()),
setSelectedAreaId: (id) => {},
setSelectedDocumentId: (id) => {}
})

View File

@ -16,6 +16,7 @@ type Props = { children: ReactNode, projectProps: ProjectProps }
export function ProjectProvider({ children, projectProps }: Props) {
const [ documents, setDocuments ] = useState<ipc.Document[]>(projectProps.documents)
const [ groups, setGroups ] = useState<ipc.Group[]>(projectProps.groups)
const [ selectedAreaId, setSelectedAreaId ] = useState<string>('')
const [selectedDocumentId, setSelectedDocumentId] = useState<string>('')
const updateDocuments = async () => {
@ -72,6 +73,8 @@ export function ProjectProvider({ children, projectProps }: Props) {
requestAddDocument,
requestAddDocumentGroup,
requestUpdateArea,
selectedAreaId,
setSelectedAreaId,
selectedDocumentId,
setSelectedDocumentId,
}

View File

@ -23,6 +23,8 @@ export type ProjectContextType = {
requestUpdateArea: (area: AreaProps) => Promise<ipc.Area>
requestAddDocument: (groupId: string, documentName: string) => Promise<ipc.Document>
requestAddDocumentGroup: (groupName: string) => Promise<ipc.Group>
selectedAreaId: string,
setSelectedAreaId: (id: string) => void,
selectedDocumentId: string
setSelectedDocumentId: (id: string) => void
} & ProjectProps