From e090bde8bb3e0be435a0d95ab08bd4c0b81e0424 Mon Sep 17 00:00:00 2001 From: Carlos Valente Date: Sat, 21 Jun 2025 11:04:16 +0200 Subject: [PATCH] refactor: migrate edit to custom component --- .../components/buttons/Button.module.scss | 1 + .../components/buttons/IconButton.module.scss | 5 ++ .../ViewParamsEditor.module.scss | 1 + .../operator/edit-modal/EditModal.module.scss | 58 +++++++++---- .../operator/edit-modal/EditModal.tsx | 87 ++++++++++++------- 5 files changed, 105 insertions(+), 47 deletions(-) diff --git a/apps/client/src/common/components/buttons/Button.module.scss b/apps/client/src/common/components/buttons/Button.module.scss index f3547a105..e23701b22 100644 --- a/apps/client/src/common/components/buttons/Button.module.scss +++ b/apps/client/src/common/components/buttons/Button.module.scss @@ -3,6 +3,7 @@ .baseButton { display: flex; align-items: center; + justify-content: center; gap: 0.5em; width: fit-content; diff --git a/apps/client/src/common/components/buttons/IconButton.module.scss b/apps/client/src/common/components/buttons/IconButton.module.scss index dcfb8031a..4e6715956 100644 --- a/apps/client/src/common/components/buttons/IconButton.module.scss +++ b/apps/client/src/common/components/buttons/IconButton.module.scss @@ -9,6 +9,11 @@ border-radius: 3px; cursor: pointer; + + &:disabled { + opacity: 0.4; + cursor: not-allowed; + } } .subtle { diff --git a/apps/client/src/common/components/view-params-editor/ViewParamsEditor.module.scss b/apps/client/src/common/components/view-params-editor/ViewParamsEditor.module.scss index 614e0c71b..2480ed099 100644 --- a/apps/client/src/common/components/view-params-editor/ViewParamsEditor.module.scss +++ b/apps/client/src/common/components/view-params-editor/ViewParamsEditor.module.scss @@ -38,6 +38,7 @@ background-color: $gray-1250; color: $ui-white; + border-left: 1px solid $gray-1200; &[data-open] { transform: translateX(0%); diff --git a/apps/client/src/features/operator/edit-modal/EditModal.module.scss b/apps/client/src/features/operator/edit-modal/EditModal.module.scss index b0e58adad..61a0facd4 100644 --- a/apps/client/src/features/operator/edit-modal/EditModal.module.scss +++ b/apps/client/src/features/operator/edit-modal/EditModal.module.scss @@ -1,27 +1,53 @@ .editModal { - position: absolute; - z-index: 2; - margin: 0 auto; - top: 20%; + position: fixed; + top: 10%; left: 50%; + + z-index: 2; transform: translateX(-50%); - padding: 1rem; + padding-inline: 1rem; + min-width: min(720px, 90vw); + background-color: $gray-1250; + color: $ui-white; + border-radius: 3px; + box-shadow: $box-shadow-l1; + border: 1px solid $gray-1200; +} + +.title { + font-size: 1.25rem; + padding-block: 1rem; + + display: flex; + align-items: center; + justify-content: space-between; +} + +.body { + flex: 1; display: flex; flex-direction: column; + gap: 0.5rem; + + max-height: min(80vh, 600px); + overflow-y: auto; +} + +.label { + background-color: var(--user-bg); + width: fit-content; + padding-inline: 1rem; +} + +.footer { + padding-block: 1rem; + display: flex; + align-items: center; gap: 1rem; - min-width: min(400px, 90vw); - box-shadow: $box-shadow-l1; - .buttonRow { - margin-top: auto; - display: flex; - justify-content: space-between; - gap: 1rem; - - button { - width: 100%; - } + button { + width: 100%; } } diff --git a/apps/client/src/features/operator/edit-modal/EditModal.tsx b/apps/client/src/features/operator/edit-modal/EditModal.tsx index 49b45d911..1bfd9aaf0 100644 --- a/apps/client/src/features/operator/edit-modal/EditModal.tsx +++ b/apps/client/src/features/operator/edit-modal/EditModal.tsx @@ -1,9 +1,13 @@ -import { useRef, useState } from 'react'; -import { Button, Textarea } from '@chakra-ui/react'; +import { Fragment, useRef, useState } from 'react'; +import { IoClose } from 'react-icons/io5'; +import { Dialog } from '@base-ui-components/react/dialog'; +import { Textarea } from '@chakra-ui/react'; import { OntimeEvent } from 'ontime-types'; +import Button from '../../../common/components/buttons/Button'; +import IconButton from '../../../common/components/buttons/IconButton'; import { useEntryActions } from '../../../common/hooks/useEntryAction'; -import type { EditEvent } from '../Operator'; +import { EditEvent } from '../operator.types'; import style from './EditModal.module.scss'; @@ -44,34 +48,55 @@ export default function EditModal(props: EditModalProps) { }; return ( -
-
{`Editing fields in cue ${event.cue}`}
- {event.subscriptions.map((field) => { - return ( -
- -