Use dedicated EditableFieldEntityIdContext for editable fields instead of CardIds (#1145)

* Use dedicated EntityIdContext for editable fields instead of CardIds

* update context name

* remove unused hook
This commit is contained in:
Weiko
2023-08-09 16:32:28 -07:00
committed by GitHub
parent 7dcbc56e69
commit cd831af53d
13 changed files with 57 additions and 57 deletions

View File

@ -3,7 +3,6 @@ import styled from '@emotion/styled';
import { useRecoilState } from 'recoil';
import { PeoplePicker } from '@/people/components/PeoplePicker';
import { BoardCardIdContext } from '@/ui/board/states/BoardCardIdContext';
import {
ViewFieldDefinition,
ViewFieldRelationMetadata,
@ -14,6 +13,7 @@ import { Entity } from '@/ui/input/relation-picker/types/EntityTypeForSelect';
import { useEditableField } from '../hooks/useEditableField';
import { useUpdateGenericEntityField } from '../hooks/useUpdateGenericEntityField';
import { EditableFieldEntityIdContext } from '../states/EditableFieldEntityIdContext';
import { genericEntityFieldFamilySelector } from '../states/genericEntityFieldFamilySelector';
const RelationPickerContainer = styled.div`
@ -56,12 +56,12 @@ function RelationPicker({
}
export function GenericEditableRelationFieldEditMode({ viewField }: OwnProps) {
const currentEntityId = useContext(BoardCardIdContext);
const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext);
// TODO: we could use a hook that would return the field value with the right type
const [fieldValue, setFieldValue] = useRecoilState<any | null>(
genericEntityFieldFamilySelector({
entityId: currentEntityId ?? '',
entityId: currentEditableFieldEntityId ?? '',
fieldName: viewField.metadata.fieldName,
}),
);
@ -78,8 +78,8 @@ export function GenericEditableRelationFieldEditMode({ viewField }: OwnProps) {
avatarUrl: newRelation?.avatarUrl ?? null,
});
if (currentEntityId && updateField) {
updateField(currentEntityId, viewField, newRelation);
if (currentEditableFieldEntityId && updateField) {
updateField(currentEditableFieldEntityId, viewField, newRelation);
}
closeEditableField();