
* Add metadata editor component * Add tests * Fix plurals * Use pascal case in selectors * Update product metadata * Add metadata handler decorator * Update snapshots * wip * Remove operation provider component * Add metadata to collections * Add metadata editor to variant * Add metadata editor to categories * Add metadata to product types * Simplify code * Add metadata to attributes * Drop maybe * Rename Metadata to MetadataFragment * Update changelog and snapshots
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { ChangeEvent } from "@saleor/hooks/useForm";
|
|
|
|
import { nameSeparator } from "./MetadataCard";
|
|
import { EventData, EventDataAction, EventDataField } from "./types";
|
|
|
|
export function parseEventData(event: ChangeEvent): EventData {
|
|
let action: EventDataAction;
|
|
let field: EventDataField = null;
|
|
let fieldIndex: number = null;
|
|
let value: string = null;
|
|
|
|
if (event.target.name.includes(EventDataField.name)) {
|
|
action = EventDataAction.update;
|
|
field = EventDataField.name;
|
|
fieldIndex = parseInt(event.target.name.split(nameSeparator)[1], 0);
|
|
value = event.target.value;
|
|
}
|
|
if (event.target.name.includes(EventDataField.value)) {
|
|
action = EventDataAction.update;
|
|
field = EventDataField.value;
|
|
fieldIndex = parseInt(event.target.name.split(nameSeparator)[1], 0);
|
|
value = event.target.value;
|
|
}
|
|
if (event.target.name === EventDataAction.add) {
|
|
action = EventDataAction.add;
|
|
}
|
|
if (event.target.name === EventDataAction.delete) {
|
|
action = EventDataAction.delete;
|
|
fieldIndex = event.target.value;
|
|
}
|
|
|
|
return {
|
|
action,
|
|
field,
|
|
fieldIndex,
|
|
value
|
|
};
|
|
}
|
|
|
|
export function getDataKey(isPrivate: boolean) {
|
|
return isPrivate ? "privateMetadata" : "metadata";
|
|
}
|