* create scopes * fix import bug * add useView hook * wip * wip * currentViewId is now retrieved via useView * working on sorts with useView * refactor in progress * refactor in progress * refactor in progress * refactor in progress * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * fix code * fix code * wip * push * Fix issue dependencies * Fix resize --------- Co-authored-by: bosiraphael <raphael.bosi@gmail.com>
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { ReactNode } from 'react';
|
|
|
|
import { ColumnDefinition } from '@/ui/data/data-table/types/ColumnDefinition';
|
|
import { FieldMetadata } from '@/ui/data/field/types/FieldMetadata';
|
|
import { Filter } from '@/ui/data/filter/types/Filter';
|
|
import { Sort } from '@/ui/data/sort/types/Sort';
|
|
|
|
import { ViewScopeInitEffect } from './init-effect/ViewScopeInitEffect';
|
|
import { ViewScopeInternalContext } from './scope-internal-context/ViewScopeInternalContext';
|
|
|
|
type ViewScopeProps = {
|
|
children: ReactNode;
|
|
viewScopeId: string;
|
|
onViewSortsChange?: (sorts: Sort[]) => void | Promise<void>;
|
|
onViewFiltersChange?: (filters: Filter[]) => void | Promise<void>;
|
|
onViewFieldsChange?: (
|
|
fields: ColumnDefinition<FieldMetadata>[],
|
|
) => void | Promise<void>;
|
|
};
|
|
|
|
export const ViewScope = ({
|
|
children,
|
|
viewScopeId,
|
|
onViewSortsChange,
|
|
onViewFiltersChange,
|
|
onViewFieldsChange,
|
|
}: ViewScopeProps) => {
|
|
return (
|
|
<ViewScopeInternalContext.Provider
|
|
value={{
|
|
scopeId: viewScopeId,
|
|
}}
|
|
>
|
|
<ViewScopeInitEffect
|
|
viewScopeId={viewScopeId}
|
|
onViewSortsChange={onViewSortsChange}
|
|
onViewFiltersChange={onViewFiltersChange}
|
|
onViewFieldsChange={onViewFieldsChange}
|
|
/>
|
|
{children}
|
|
</ViewScopeInternalContext.Provider>
|
|
);
|
|
};
|