1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-19 13:29:41 +02:00
portainer/app/edge/EdgeDevices/EdgeDevicesView/AMTDevicesDatatable/columns/RowContext.tsx
Chaim Lev-Ari bed4257194
refactor(containers): migrate view to react [EE-2212] (#6577)
Co-authored-by: LP B <xAt0mZ@users.noreply.github.com>
2022-08-11 07:33:29 +03:00

38 lines
873 B
TypeScript

import { PropsWithChildren, useMemo, useReducer } from 'react';
import { EnvironmentId } from '@/portainer/environments/types';
import { createRowContext } from '@@/datatables/RowContext';
interface RowContextState {
environmentId: EnvironmentId;
isLoading: boolean;
toggleIsLoading(): void;
}
const { RowProvider: InternalProvider, useRowContext } =
createRowContext<RowContextState>();
export { useRowContext };
interface Props {
environmentId: EnvironmentId;
}
export function RowProvider({
environmentId,
children,
}: PropsWithChildren<Props>) {
const [isLoading, toggleIsLoading] = useReducer((state) => !state, false);
const context = useMemo(
() => ({
isLoading,
toggleIsLoading,
environmentId,
}),
[environmentId, isLoading]
);
return <InternalProvider context={context}>{children}</InternalProvider>;
}