From 99530c670e179295b16c2569c272fb409abfcc63 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Sat, 4 Apr 2026 14:24:56 -0700 Subject: [PATCH] redesign queue controls bar --- .../components/play-queue-list-controls.tsx | 118 +++++++++++------- .../shared/components/search-input.tsx | 16 ++- 2 files changed, 84 insertions(+), 50 deletions(-) diff --git a/src/renderer/features/now-playing/components/play-queue-list-controls.tsx b/src/renderer/features/now-playing/components/play-queue-list-controls.tsx index f4e72d12c..5b2c89cf9 100644 --- a/src/renderer/features/now-playing/components/play-queue-list-controls.tsx +++ b/src/renderer/features/now-playing/components/play-queue-list-controls.tsx @@ -16,6 +16,8 @@ import { SearchInput } from '/@/renderer/features/shared/components/search-input import { useCurrentServer, usePlayerStoreBase } from '/@/renderer/store'; import { hasFeature } from '/@/shared/api/utils'; import { ActionIcon } from '/@/shared/components/action-icon/action-icon'; +import { Box } from '/@/shared/components/box/box'; +import { Divider } from '/@/shared/components/divider/divider'; import { Group } from '/@/shared/components/group/group'; import { ServerFeature } from '/@/shared/types/features-types'; import { ItemListKey, ListDisplayType } from '/@/shared/types/types'; @@ -33,6 +35,52 @@ export const PlayQueueListControls = ({ tableRef, type, }: PlayQueueListOptionsProps) => { + return ( + + + + + + + + handleSearch(e.target.value)} + value={searchTerm} + /> + + + + + + + ); +}; + +const QueuePlaybackIcons = ({ tableRef }: { tableRef: RefObject }) => { const { t } = useTranslation(); const player = usePlayer(); @@ -52,53 +100,29 @@ export const PlayQueueListControls = ({ }; return ( - - - - - - - - - handleSearch(e.target.value)} - value={searchTerm} - /> - - - + <> + + + + ); }; diff --git a/src/renderer/features/shared/components/search-input.tsx b/src/renderer/features/shared/components/search-input.tsx index ac5836af6..dedb26b08 100644 --- a/src/renderer/features/shared/components/search-input.tsx +++ b/src/renderer/features/shared/components/search-input.tsx @@ -19,6 +19,7 @@ import { useHotkeys } from '/@/shared/hooks/use-hotkeys'; interface SearchInputProps extends TextInputProps { buttonProps?: Partial; enableHotkey?: boolean; + fillContainer?: boolean; inputProps?: Partial; value?: string; } @@ -26,6 +27,7 @@ interface SearchInputProps extends TextInputProps { export const SearchInput = ({ buttonProps, enableHotkey = true, + fillContainer = false, inputProps, onChange, ...props @@ -104,9 +106,17 @@ export const SearchInput = ({ overflow: 'hidden', position: 'relative', transition: 'width 0.3s ease-in-out', - width: shouldExpand ? '200px' : '36px', + ...(fillContainer + ? { + flex: '1 1 0', + minWidth: 0, + width: shouldExpand ? '100%' : '36px', + } + : { + width: shouldExpand ? '200px' : '36px', + }), }), - [shouldExpand], + [fillContainer, shouldExpand], ); const buttonStyle: CSSProperties = useMemo( @@ -135,7 +145,7 @@ export const SearchInput = ({ } - maw="20dvw" + maw={fillContainer ? '100%' : '20dvw'} {...inputProps} onBlur={handleBlur} onChange={onChange}