Prevent remote object updates (#4804)

Backend: Adding a new util function that throw an error if the
objectMetadata is remote

Frontend: hiding the save button when remote

Also renaming `useObjectMetadataItemForSettings` since this hook is used
in other places than settings and is not in the settings repo. Name can
definitely be challenged!

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
This commit is contained in:
Thomas Trompette
2024-04-04 15:47:08 +02:00
committed by GitHub
parent c5349291c8
commit 2e419091cc
16 changed files with 79 additions and 40 deletions

View File

@ -7,8 +7,8 @@ import {
query,
responseData,
variables,
} from '@/object-metadata/hooks/__mocks__/useObjectMetadataItemForSettings';
import { useObjectMetadataItemForSettings } from '@/object-metadata/hooks/useObjectMetadataItemForSettings';
} from '@/object-metadata/hooks/__mocks__/useFilteredObjectMetadataItems';
import { useFilteredObjectMetadataItems } from '@/object-metadata/hooks/useFilteredObjectMetadataItems';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock';
@ -36,14 +36,14 @@ const Wrapper = ({ children }: { children: ReactNode }) => (
const mockObjectMetadataItems = getObjectMetadataItemsMock();
describe('useObjectMetadataItemForSettings', () => {
describe('useFilteredObjectMetadataItems', () => {
it('should findActiveObjectMetadataItemBySlug', async () => {
const { result } = renderHook(
() => {
const setMetadataItems = useSetRecoilState(objectMetadataItemsState);
setMetadataItems(mockObjectMetadataItems);
return useObjectMetadataItemForSettings();
return useFilteredObjectMetadataItems();
},
{
wrapper: Wrapper,
@ -63,7 +63,7 @@ describe('useObjectMetadataItemForSettings', () => {
const setMetadataItems = useSetRecoilState(objectMetadataItemsState);
setMetadataItems(mockObjectMetadataItems);
return useObjectMetadataItemForSettings();
return useFilteredObjectMetadataItems();
},
{
wrapper: Wrapper,
@ -85,7 +85,7 @@ describe('useObjectMetadataItemForSettings', () => {
const setMetadataItems = useSetRecoilState(objectMetadataItemsState);
setMetadataItems(mockObjectMetadataItems);
return useObjectMetadataItemForSettings();
return useFilteredObjectMetadataItems();
},
{
wrapper: Wrapper,

View File

@ -4,7 +4,7 @@ import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadat
import { getObjectSlug } from '../utils/getObjectSlug';
export const useObjectMetadataItemForSettings = () => {
export const useFilteredObjectMetadataItems = () => {
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
const activeObjectMetadataItems = objectMetadataItems.filter(