New view picker (#4610)
* Implement new view picker * Complete feature * Fixes according to review
This commit is contained in:
@ -0,0 +1,34 @@
|
||||
import { useCallback } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
|
||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||
import { useViewStates } from '@/views/hooks/internal/useViewStates';
|
||||
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
|
||||
export const useGetAvailableFieldsForKanban = () => {
|
||||
const { viewObjectMetadataIdState } = useViewStates();
|
||||
|
||||
const viewObjectMetadataId = useRecoilValue(viewObjectMetadataIdState);
|
||||
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
|
||||
|
||||
const objectMetadataItem = objectMetadataItems.find(
|
||||
(objectMetadata) => objectMetadata.id === viewObjectMetadataId,
|
||||
);
|
||||
|
||||
const availableFieldsForKanban =
|
||||
objectMetadataItem?.fields.filter(
|
||||
(field) => field.type === FieldMetadataType.Select,
|
||||
) ?? [];
|
||||
|
||||
const navigate = useNavigate();
|
||||
|
||||
const navigateToSelectSettings = useCallback(() => {
|
||||
navigate(`/settings/objects/${objectMetadataItem?.namePlural}`);
|
||||
}, [navigate, objectMetadataItem?.namePlural]);
|
||||
|
||||
return {
|
||||
availableFieldsForKanban,
|
||||
navigateToSelectSettings,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user