import { debounce } from "lodash-es"; import { action, runInAction } from "mobx"; import { observer } from "mobx-react"; import { FC, useState } from "react"; import { ChromePicker } from "react-color"; import { useTranslation } from "react-i18next"; import isDefined from "../../Core/isDefined"; import CommonStrata from "../../Models/Definition/CommonStrata"; import { SelectableDimensionColor as SelectableDimensionColorModel } from "../../Models/SelectableDimensions/SelectableDimensions"; import { RawButton } from "../../Styled/Button"; import { TextSpan } from "../../Styled/Text"; const debounceSetColorDimensionValue = debounce( action((dim: SelectableDimensionColorModel, value: string) => { // Only update value if it has changed if (dim.value !== value) { dim.setDimensionValue(CommonStrata.user, value); } }), 100 ); export const SelectableDimensionColor: FC<{ id: string; dim: SelectableDimensionColorModel; }> = observer(({ dim }) => { const [open, setIsOpen] = useState(false); const { t } = useTranslation(); return (