diff --git a/frontend/src/components/AvailabilityEditor/AvailabilityEditor.tsx b/frontend/src/components/AvailabilityEditor/AvailabilityEditor.tsx index 4f48799..e650488 100644 --- a/frontend/src/components/AvailabilityEditor/AvailabilityEditor.tsx +++ b/frontend/src/components/AvailabilityEditor/AvailabilityEditor.tsx @@ -108,17 +108,20 @@ const AvailabilityEditor = ({ title={t('greyed_times')} /> + const isSelected = ( + (!(mode.current === 'remove' && selecting.includes(cell.serialized)) && value.includes(cell.serialized)) + || (mode.current === 'add' && selecting.includes(cell.serialized)) + ) + return
{ e.preventDefault() startPos.current = { x, y } @@ -132,6 +135,7 @@ const AvailabilityEditor = ({ } else if (mode.current === 'remove') { onChange(value.filter(t => !selectingRef.current.includes(t))) } + setSelecting([]) mode.current = undefined }, { once: true }) }} diff --git a/frontend/src/components/AvailabilityViewer/AvailabilityViewer.module.scss b/frontend/src/components/AvailabilityViewer/AvailabilityViewer.module.scss index 5cc0973..ac1acab 100644 --- a/frontend/src/components/AvailabilityViewer/AvailabilityViewer.module.scss +++ b/frontend/src/components/AvailabilityViewer/AvailabilityViewer.module.scss @@ -108,6 +108,15 @@ } } +.editable { + @media (hover: hover) { + &:hover:not(:active) { + opacity: .8; + background-image: linear-gradient(var(--hover-color), var(--hover-color)); + } + } +} + .highlight { background-image: repeating-linear-gradient( 45deg,