25 lines
718 B
TypeScript
25 lines
718 B
TypeScript
import { Dispatch, SetStateAction, createContext, useContext, useState } from "react";
|
|
|
|
export interface IPinningData {
|
|
cid: string;
|
|
progress: number
|
|
}
|
|
|
|
export interface IPinningContextType {
|
|
data: IPinningData[],
|
|
setData: Dispatch<SetStateAction<IPinningData[]>>
|
|
}
|
|
|
|
export const PinningContext = createContext<IPinningContextType>({} as IPinningContextType);
|
|
|
|
export const usePinningContext = () => useContext(PinningContext);
|
|
|
|
export const PinningProvider = ({ children }: React.PropsWithChildren) => {
|
|
const [data, setData] = useState<IPinningData[]>([]);
|
|
|
|
return (
|
|
<PinningContext.Provider value={{ data, setData }}>
|
|
{children}
|
|
</PinningContext.Provider>
|
|
)
|
|
} |