|
|
@@ -1,3 +1,5 @@ |
|
|
|
|
|
import { SettingsPhoneTwoTone } from "@mui/icons-material"; |
|
|
|
|
|
import { Dialog, DialogActions, DialogContent, Button } from "@mui/material"; |
|
|
import { HasChildren } from "@types"; |
|
|
import { HasChildren } from "@types"; |
|
|
import { PageID, TabID } from "codes/page"; |
|
|
import { PageID, TabID } from "codes/page"; |
|
|
import { createContext, useState } from "react"; |
|
|
import { createContext, useState } from "react"; |
|
|
@@ -7,12 +9,14 @@ type ContextProps = { |
|
|
tabId: TabID; |
|
|
tabId: TabID; |
|
|
setPageId: (pageId: PageID) => void; |
|
|
setPageId: (pageId: PageID) => void; |
|
|
setTabId: (tabId: TabID) => void; |
|
|
setTabId: (tabId: TabID) => void; |
|
|
|
|
|
openDialog: (message: string) => void; |
|
|
}; |
|
|
}; |
|
|
const contextInit: ContextProps = { |
|
|
const contextInit: ContextProps = { |
|
|
pageId: PageID.NONE, |
|
|
pageId: PageID.NONE, |
|
|
tabId: TabID.NONE, |
|
|
tabId: TabID.NONE, |
|
|
setPageId: (pageId: PageID) => {}, |
|
|
setPageId: (pageId: PageID) => {}, |
|
|
setTabId: (tabId: TabID) => {}, |
|
|
setTabId: (tabId: TabID) => {}, |
|
|
|
|
|
openDialog: (message: string) => {}, |
|
|
}; |
|
|
}; |
|
|
export const PageContext = createContext(contextInit); |
|
|
export const PageContext = createContext(contextInit); |
|
|
|
|
|
|
|
|
@@ -21,6 +25,18 @@ export function PageContextProvider({ children }: Props) { |
|
|
const [pageId, setPageId] = useState<PageID>(PageID.NONE); |
|
|
const [pageId, setPageId] = useState<PageID>(PageID.NONE); |
|
|
const [tabId, setTabId] = useState<TabID>(TabID.NONE); |
|
|
const [tabId, setTabId] = useState<TabID>(TabID.NONE); |
|
|
|
|
|
|
|
|
|
|
|
const [open, setOpen] = useState(false); |
|
|
|
|
|
const [dialogMessage, setDialogMessage] = useState(""); |
|
|
|
|
|
|
|
|
|
|
|
const openDialog = (message: string) => { |
|
|
|
|
|
setOpen(true); |
|
|
|
|
|
setDialogMessage(message); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
const close = () => { |
|
|
|
|
|
setOpen(false); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
return ( |
|
|
return ( |
|
|
<PageContext.Provider |
|
|
<PageContext.Provider |
|
|
value={{ |
|
|
value={{ |
|
|
@@ -28,9 +44,16 @@ export function PageContextProvider({ children }: Props) { |
|
|
tabId, |
|
|
tabId, |
|
|
setPageId, |
|
|
setPageId, |
|
|
setTabId, |
|
|
setTabId, |
|
|
|
|
|
openDialog, |
|
|
}} |
|
|
}} |
|
|
> |
|
|
> |
|
|
{children} |
|
|
{children} |
|
|
|
|
|
<Dialog open={open} onClose={close}> |
|
|
|
|
|
<DialogContent>{dialogMessage}</DialogContent> |
|
|
|
|
|
<DialogActions> |
|
|
|
|
|
<Button onClick={close}>閉じる</Button> |
|
|
|
|
|
</DialogActions> |
|
|
|
|
|
</Dialog> |
|
|
</PageContext.Provider> |
|
|
</PageContext.Provider> |
|
|
); |
|
|
); |
|
|
} |
|
|
} |