Fix Views on People page (#2265)

* fetching viewId for url

* fixed option menu name input

* fix table import

* fix unnecessary rerenders

* people working

---------

Co-authored-by: bosiraphael <raphael.bosi@gmail.com>
This commit is contained in:
Charles Bochet
2023-10-27 18:20:58 +02:00
committed by GitHub
parent 35237c05f3
commit afd4b7c634
14 changed files with 202 additions and 75 deletions

View File

@ -1,3 +1,4 @@
import { useCallback } from 'react';
import { useSearchParams } from 'react-router-dom';
import { useRecoilCallback } from 'recoil';
import { v4 } from 'uuid';
@ -62,6 +63,13 @@ export const useView = (props?: UseViewProps) => {
useViews(scopeId);
const [_, setSearchParams] = useSearchParams();
const changeView = useCallback(
(viewId: string) => {
setSearchParams({ view: viewId });
},
[setSearchParams],
);
const resetViewBar = useRecoilCallback(({ snapshot }) => () => {
const savedViewFilters = snapshot
.getLoadable(
@ -148,19 +156,17 @@ export const useView = (props?: UseViewProps) => {
await persistViewFields(currentViewFields, newViewId);
await persistViewFilters(newViewId);
await persistViewSorts(newViewId);
setCurrentViewId(newViewId);
setSearchParams({ view: newViewId });
changeView(newViewId);
},
[
changeView,
currentViewId,
internalCreateView,
persistViewFields,
persistViewFilters,
persistViewSorts,
scopeId,
setCurrentViewId,
setSearchParams,
],
);
@ -203,9 +209,9 @@ export const useView = (props?: UseViewProps) => {
)
.getValue();
const isCreateMode = viewEditMode === 'create';
const isCreateModeOrEditMode = viewEditMode === 'create' || 'edit';
if (isCreateMode && name && currentViewFields) {
if (isCreateModeOrEditMode && name && currentViewFields) {
await createView(name);
set(savedTableColumnsFamilyState(currentViewId), currentViewFields);
}
@ -244,5 +250,6 @@ export const useView = (props?: UseViewProps) => {
setSavedViewFields,
persistViewFields,
changeView,
};
};