@ -27,6 +27,7 @@ export const StyledSelectableItem = styled(SelectableItem)`
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export const MultiRecordSelect = ({
|
export const MultiRecordSelect = ({
|
||||||
onChange,
|
onChange,
|
||||||
onSubmit,
|
onSubmit,
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import { FieldContext } from '@/object-record/record-field/contexts/FieldContext
|
|||||||
import { BooleanFieldInput } from '@/object-record/record-field/meta-types/input/components/BooleanFieldInput';
|
import { BooleanFieldInput } from '@/object-record/record-field/meta-types/input/components/BooleanFieldInput';
|
||||||
import { RatingFieldInput } from '@/object-record/record-field/meta-types/input/components/RatingFieldInput';
|
import { RatingFieldInput } from '@/object-record/record-field/meta-types/input/components/RatingFieldInput';
|
||||||
import { SettingsDataModelSetFieldValueEffect } from '@/settings/data-model/fields/preview/components/SettingsDataModelSetFieldValueEffect';
|
import { SettingsDataModelSetFieldValueEffect } from '@/settings/data-model/fields/preview/components/SettingsDataModelSetFieldValueEffect';
|
||||||
import { SettingsDataModelSetRecordEffect } from '@/settings/data-model/fields/preview/components/SettingsDataModelSetRecordEffect';
|
import { SettingsDataModelSetPreviewRecordEffect } from '@/settings/data-model/fields/preview/components/SettingsDataModelSetRecordEffect';
|
||||||
import { useFieldPreviewValue } from '@/settings/data-model/fields/preview/hooks/useFieldPreviewValue';
|
import { useFieldPreviewValue } from '@/settings/data-model/fields/preview/hooks/useFieldPreviewValue';
|
||||||
import { usePreviewRecord } from '@/settings/data-model/fields/preview/hooks/usePreviewRecord';
|
import { usePreviewRecord } from '@/settings/data-model/fields/preview/hooks/usePreviewRecord';
|
||||||
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||||
@ -96,7 +96,7 @@ export const SettingsDataModelFieldPreview = ({
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{previewRecord ? (
|
{previewRecord ? (
|
||||||
<SettingsDataModelSetRecordEffect
|
<SettingsDataModelSetPreviewRecordEffect
|
||||||
fieldName={fieldName}
|
fieldName={fieldName}
|
||||||
record={previewRecord}
|
record={previewRecord}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { useSetRecordFieldValue } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext';
|
import { useSetRecordFieldValue } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext';
|
||||||
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
|
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
|
||||||
import { recordStoreFamilySelector } from '@/object-record/record-store/states/selectors/recordStoreFamilySelector';
|
import { recordStoreFamilySelector } from '@/object-record/record-store/states/selectors/recordStoreFamilySelector';
|
||||||
import { previewRecordIdState } from '@/settings/data-model/fields/preview/states/previewRecordIdState';
|
import { settingsPreviewRecordIdState } from '@/settings/data-model/fields/preview/states/settingsPreviewRecordIdState';
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { useRecoilValue, useSetRecoilState } from 'recoil';
|
import { useRecoilValue, useSetRecoilState } from 'recoil';
|
||||||
import { isDefined } from '~/utils/isDefined';
|
import { isDefined } from '~/utils/isDefined';
|
||||||
@ -17,10 +17,10 @@ export const SettingsDataModelSetFieldValueEffect = ({
|
|||||||
fieldName,
|
fieldName,
|
||||||
value,
|
value,
|
||||||
}: SettingsDataModelSetFieldValueEffectProps) => {
|
}: SettingsDataModelSetFieldValueEffectProps) => {
|
||||||
const previewRecordId = useRecoilValue(previewRecordIdState);
|
const settingsPreviewRecordId = useRecoilValue(settingsPreviewRecordIdState);
|
||||||
|
|
||||||
const upsertedPreviewRecord = useRecoilValue(
|
const upsertedPreviewRecord = useRecoilValue(
|
||||||
recordStoreFamilyState(previewRecordId ?? ''),
|
recordStoreFamilyState(settingsPreviewRecordId ?? ''),
|
||||||
);
|
);
|
||||||
|
|
||||||
const setFieldValue = useSetRecoilState(
|
const setFieldValue = useSetRecoilState(
|
||||||
|
|||||||
@ -1,34 +1,36 @@
|
|||||||
import { useSetRecordFieldValue } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext';
|
import { useSetRecordFieldValue } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext';
|
||||||
import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore';
|
import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore';
|
||||||
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
|
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
|
||||||
import { previewRecordIdState } from '@/settings/data-model/fields/preview/states/previewRecordIdState';
|
import { settingsPreviewRecordIdState } from '@/settings/data-model/fields/preview/states/settingsPreviewRecordIdState';
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { useSetRecoilState } from 'recoil';
|
import { useSetRecoilState } from 'recoil';
|
||||||
|
|
||||||
type SettingsDataModelSetRecordEffectProps = {
|
type SettingsDataModelSetPreviewRecordEffectProps = {
|
||||||
record: ObjectRecord;
|
record: ObjectRecord;
|
||||||
fieldName: string;
|
fieldName: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const SettingsDataModelSetRecordEffect = ({
|
export const SettingsDataModelSetPreviewRecordEffect = ({
|
||||||
record,
|
record,
|
||||||
fieldName,
|
fieldName,
|
||||||
}: SettingsDataModelSetRecordEffectProps) => {
|
}: SettingsDataModelSetPreviewRecordEffectProps) => {
|
||||||
const { upsertRecords: upsertRecordsInStore } = useUpsertRecordsInStore();
|
const { upsertRecords: upsertRecordsInStore } = useUpsertRecordsInStore();
|
||||||
const setRecordFieldValue = useSetRecordFieldValue();
|
const setRecordFieldValue = useSetRecordFieldValue();
|
||||||
|
|
||||||
const setPreviewRecordId = useSetRecoilState(previewRecordIdState);
|
const setSettingsPreviewRecordId = useSetRecoilState(
|
||||||
|
settingsPreviewRecordIdState,
|
||||||
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
upsertRecordsInStore([record]);
|
upsertRecordsInStore([record]);
|
||||||
setRecordFieldValue(record.id, fieldName, record[fieldName]);
|
setRecordFieldValue(record.id, fieldName, record[fieldName]);
|
||||||
setPreviewRecordId(record.id);
|
setSettingsPreviewRecordId(record.id);
|
||||||
}, [
|
}, [
|
||||||
record,
|
record,
|
||||||
upsertRecordsInStore,
|
upsertRecordsInStore,
|
||||||
setRecordFieldValue,
|
setRecordFieldValue,
|
||||||
fieldName,
|
fieldName,
|
||||||
setPreviewRecordId,
|
setSettingsPreviewRecordId,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
import { createState } from 'twenty-ui';
|
|
||||||
|
|
||||||
export const previewRecordIdState = createState<string | null>({
|
|
||||||
key: 'previewRecordId',
|
|
||||||
defaultValue: null,
|
|
||||||
});
|
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
import { createState } from 'twenty-ui';
|
||||||
|
|
||||||
|
export const settingsPreviewRecordIdState = createState<string | null>({
|
||||||
|
key: 'settingsPreviewRecordIdState',
|
||||||
|
defaultValue: null,
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user