import { useState } from "react"; import SettingColorChooser from "renderer/components/settings/setting-color-chooser.component"; import { BsmButton } from "renderer/components/shared/bsm-button.component"; import { BsmIcon } from "renderer/components/svgs/bsm-icon.component"; import { DefaultConfigKey } from "renderer/config/default-configuration.config"; import { useService } from "renderer/hooks/use-service.hook"; import { useTranslation } from "renderer/hooks/use-translation.hook"; import { ConfigurationService } from "renderer/services/configuration.service"; import { ModalComponent, ModalExitCode } from "renderer/services/modale.service"; import { BSVersion } from "shared/bs-version.interface"; export const EditVersionModal: ModalComponent<{ name: string; color: string }, { version: BSVersion; clone?: boolean }> = ({ resolver, options: {data} }) => { const { version, clone } = data; const configService = useService(ConfigurationService); const [name, setName] = useState(version.name || version.BSVersion); const [color, setColor] = useState(version.color ?? configService.get("second-color" as DefaultConfigKey)); const t = useTranslation(); const rename = () => { if (!name) { return; } resolver({ exitCode: ModalExitCode.COMPLETED, data: { name: name.trim(), color } }); }; const resetColor = () => { setColor(configService.get("second-color" as DefaultConfigKey)); }; const resetName = () => { setName(version.BSVersion); }; return (
{ e.preventDefault(); rename(); }} >

{t(!clone ? "modals.edit-version.title" : "modals.clone-version.title")}

{clone &&

{t("modals.clone-version.description")}

}
setName(e.target.value)} value={name} type="text" name="name" id="name" minLength={2} maxLength={15} placeholder={t("modals.clone-version.inputs.name.placeholder")} />
{t("modals.clone-version.inputs.color.label")}
{ resolver({ exitCode: ModalExitCode.CANCELED }); }} withBar={false} text="misc.cancel" />
); };