Files
bee-dashboard/src/pages/filemanager/ViewContext.tsx
T
Bálint Ujvári 519c411db0 feat: sync and update with all changes from fork (#720)
* feat: sync and update with all changes from fork
* refactor: extract clipboard copy logic into custom hook
* fix: correct spelling of DEFAULT_REFRESH_FREQUENCY_MS in Stamps and WalletBalance providers
* refactor(ui-tests): replace fixed sleeps with condition-based waits
* fix: handle null values for size and granteeCount in infoGroups
* fix(lint): add newline at end of file in useClipboardCopy hook
* fix(ui-tests): page.goto URL
* refactor: update import paths for useClipboardCopy

---------

Co-authored-by: Ferenc Sárai <sarai.ferenc@gmail.com>
2026-03-02 11:34:39 +01:00

41 lines
975 B
TypeScript

import { createContext, ReactNode, useContext, useState } from 'react'
import { ViewType } from '../../modules/filemanager/constants/transfers'
interface ViewContextProps {
view: ViewType
setView: (view: ViewType) => void
actualItemView?: string
setActualItemView?: (view: string) => void
}
const ViewContext = createContext<ViewContextProps | undefined>(undefined)
export function ViewProvider({ children }: { children: ReactNode }) {
const [view, setView] = useState<ViewType>(ViewType.File)
const [actualItemView, setActualItemView] = useState<string | undefined>(undefined)
return (
<ViewContext.Provider
value={{
view,
setView,
actualItemView,
setActualItemView,
}}
>
{children}
</ViewContext.Provider>
)
}
export function useView() {
const context = useContext(ViewContext)
if (!context) {
throw new Error('useView must be used within a ViewProvider')
}
return context
}