From db3460eb0465047dbced3efa1640ea68927e9c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Mon, 1 Sep 2025 15:15:10 +0200 Subject: [PATCH] pl-fe: Allow pleroma-fe-like linear view MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- .../dropdown-menu/dropdown-menu-item.tsx | 8 +- packages/pl-fe/src/components/ui/toggle.tsx | 30 +++++-- .../status/components/thread-status.tsx | 6 +- .../src/features/status/components/thread.tsx | 83 ++++++++++++------- packages/pl-fe/src/locales/en.json | 2 + packages/pl-fe/src/pages/statuses/status.tsx | 31 ++++++- packages/pl-fe/src/schemas/pl-fe/settings.ts | 4 + .../styles/components/detailed-status.scss | 6 +- 8 files changed, 126 insertions(+), 44 deletions(-) diff --git a/packages/pl-fe/src/components/dropdown-menu/dropdown-menu-item.tsx b/packages/pl-fe/src/components/dropdown-menu/dropdown-menu-item.tsx index 7ad95093d..7cfee1204 100644 --- a/packages/pl-fe/src/components/dropdown-menu/dropdown-menu-item.tsx +++ b/packages/pl-fe/src/components/dropdown-menu/dropdown-menu-item.tsx @@ -21,7 +21,7 @@ interface MenuItem { target?: React.HTMLAttributeAnchorTarget; text: string; to?: string; - type?: 'toggle'; + type?: 'toggle' | 'radio'; items?: Array>; } @@ -120,7 +120,7 @@ const DropdownMenuItem = ({ index, item, onClick, autoFocus, onSetTab }: IDropdo > {item.icon && } -
+
{item.meta ? ( <>
{item.text}
@@ -135,9 +135,9 @@ const DropdownMenuItem = ({ index, item, onClick, autoFocus, onSetTab }: IDropdo ) : null} - {item.type === 'toggle' && ( + {(item.type === 'toggle' || item.type === 'radio') && (
- +
)} diff --git a/packages/pl-fe/src/components/ui/toggle.tsx b/packages/pl-fe/src/components/ui/toggle.tsx index 445364328..813b5e4da 100644 --- a/packages/pl-fe/src/components/ui/toggle.tsx +++ b/packages/pl-fe/src/components/ui/toggle.tsx @@ -3,10 +3,11 @@ import React, { useRef } from 'react'; interface IToggle extends Pick, 'id' | 'name' | 'checked' | 'onChange' | 'required' | 'disabled'> { size?: 'sm' | 'md'; + radio?: boolean; } /** A glorified checkbox. */ -const Toggle: React.FC = ({ id, size = 'md', name, checked = false, onChange, required, disabled }) => { +const Toggle: React.FC = ({ id, size = 'md', name, checked = false, onChange, required, disabled, radio }) => { const input = useRef(null); const handleClick: React.MouseEventHandler = () => { @@ -16,7 +17,14 @@ const Toggle: React.FC = ({ id, size = 'md', name, checked = false, onC return (