saleor-dashboard/src/components/Metadata/utils.ts
Dominik Żegleń 7770ae34df
Add metadata (#670)
* 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
2020-08-28 14:45:11 +02:00

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";
}