[ESLint rule]: recoil value and setter should be named after their at… (#1402)
* Override unwanted changes Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> Co-authored-by: Rafael Toledo <87545086+Toledodev@users.noreply.github.com> * Fix the tests Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> Co-authored-by: Rafael Toledo <87545086+Toledodev@users.noreply.github.com> --------- Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> Co-authored-by: Rafael Toledo <87545086+Toledodev@users.noreply.github.com> Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
This commit is contained in:
@ -27,22 +27,19 @@ export const useTableViews = <Entity, SortField>({
|
||||
objectId: 'company' | 'person';
|
||||
columnDefinitions: ColumnDefinition<ViewFieldMetadata>[];
|
||||
}) => {
|
||||
const currentViewId = useRecoilScopedValue(
|
||||
const currentTableViewId = useRecoilScopedValue(
|
||||
currentTableViewIdState,
|
||||
TableRecoilScopeContext,
|
||||
);
|
||||
const currentColumns = useRecoilScopedValue(
|
||||
const tableColumns = useRecoilScopedValue(
|
||||
tableColumnsScopedState,
|
||||
TableRecoilScopeContext,
|
||||
);
|
||||
const selectedFilters = useRecoilScopedValue(
|
||||
const filters = useRecoilScopedValue(
|
||||
filtersScopedState,
|
||||
TableRecoilScopeContext,
|
||||
);
|
||||
const selectedSorts = useRecoilScopedValue(
|
||||
sortsScopedState,
|
||||
TableRecoilScopeContext,
|
||||
);
|
||||
const sorts = useRecoilScopedValue(sortsScopedState, TableRecoilScopeContext);
|
||||
|
||||
const { createViewFields, persistColumns } = useTableViewFields({
|
||||
objectId,
|
||||
@ -50,28 +47,28 @@ export const useTableViews = <Entity, SortField>({
|
||||
});
|
||||
const { createViewFilters, persistFilters } = useViewFilters({
|
||||
availableFilters,
|
||||
currentViewId,
|
||||
currentViewId: currentTableViewId,
|
||||
scopeContext: TableRecoilScopeContext,
|
||||
});
|
||||
const { createViewSorts, persistSorts } = useViewSorts({
|
||||
availableSorts,
|
||||
currentViewId,
|
||||
currentViewId: currentTableViewId,
|
||||
scopeContext: TableRecoilScopeContext,
|
||||
});
|
||||
|
||||
const handleViewCreate = useCallback(
|
||||
async (viewId: string) => {
|
||||
await createViewFields(currentColumns, viewId);
|
||||
await createViewFilters(selectedFilters, viewId);
|
||||
await createViewSorts(selectedSorts, viewId);
|
||||
await createViewFields(tableColumns, viewId);
|
||||
await createViewFilters(filters, viewId);
|
||||
await createViewSorts(sorts, viewId);
|
||||
},
|
||||
[
|
||||
createViewFields,
|
||||
createViewFilters,
|
||||
createViewSorts,
|
||||
currentColumns,
|
||||
selectedFilters,
|
||||
selectedSorts,
|
||||
filters,
|
||||
sorts,
|
||||
tableColumns,
|
||||
],
|
||||
);
|
||||
|
||||
|
||||
@ -25,15 +25,15 @@ export const useViews = ({
|
||||
objectId: 'company' | 'person';
|
||||
onViewCreate: (viewId: string) => Promise<void>;
|
||||
}) => {
|
||||
const [currentViewId, setCurrentViewId] = useRecoilScopedState(
|
||||
const [currentTableViewId, setCurrentTableViewId] = useRecoilScopedState(
|
||||
currentTableViewIdState,
|
||||
TableRecoilScopeContext,
|
||||
);
|
||||
const [views, setViews] = useRecoilScopedState(
|
||||
const [tableViews, setTableViews] = useRecoilScopedState(
|
||||
tableViewsState,
|
||||
TableRecoilScopeContext,
|
||||
);
|
||||
const viewsById = useRecoilScopedValue(
|
||||
const tableViewsById = useRecoilScopedValue(
|
||||
tableViewsByIdState,
|
||||
TableRecoilScopeContext,
|
||||
);
|
||||
@ -88,16 +88,17 @@ export const useViews = ({
|
||||
name: view.name,
|
||||
}));
|
||||
|
||||
if (!isDeeplyEqual(views, nextViews)) setViews(nextViews);
|
||||
if (!isDeeplyEqual(tableViews, nextViews)) setTableViews(nextViews);
|
||||
|
||||
if (nextViews.length && !currentViewId) setCurrentViewId(nextViews[0].id);
|
||||
if (nextViews.length && !currentTableViewId)
|
||||
setCurrentTableViewId(nextViews[0].id);
|
||||
},
|
||||
});
|
||||
|
||||
const handleViewsChange = useCallback(
|
||||
async (nextViews: TableView[]) => {
|
||||
const viewToCreate = nextViews.find(
|
||||
(nextView) => !viewsById[nextView.id],
|
||||
(nextView) => !tableViewsById[nextView.id],
|
||||
);
|
||||
if (viewToCreate) {
|
||||
await createView(viewToCreate);
|
||||
@ -106,8 +107,8 @@ export const useViews = ({
|
||||
|
||||
const viewToUpdate = nextViews.find(
|
||||
(nextView) =>
|
||||
viewsById[nextView.id] &&
|
||||
viewsById[nextView.id].name !== nextView.name,
|
||||
tableViewsById[nextView.id] &&
|
||||
tableViewsById[nextView.id].name !== nextView.name,
|
||||
);
|
||||
if (viewToUpdate) {
|
||||
await updateView(viewToUpdate);
|
||||
@ -115,14 +116,14 @@ export const useViews = ({
|
||||
}
|
||||
|
||||
const nextViewIds = nextViews.map((nextView) => nextView.id);
|
||||
const viewIdToDelete = Object.keys(viewsById).find(
|
||||
const viewIdToDelete = Object.keys(tableViewsById).find(
|
||||
(previousViewId) => !nextViewIds.includes(previousViewId),
|
||||
);
|
||||
if (viewIdToDelete) await deleteView(viewIdToDelete);
|
||||
|
||||
return refetch();
|
||||
},
|
||||
[createView, deleteView, refetch, updateView, viewsById],
|
||||
[createView, deleteView, refetch, tableViewsById, updateView],
|
||||
);
|
||||
|
||||
return { handleViewsChange };
|
||||
|
||||
Reference in New Issue
Block a user