Files
Aurora-SpotiRip/components/Resizable.tsx
T
R3ap3r 3178b8f4f7 Aurora SpotiRip desktop and web app
- Spotify playlist, library, album and artist browsing with in-app playback
- Song, playlist and album downloads via spotdl with YouTube and Bandcamp fallbacks
- Electron desktop app (castLabs Widevine) with a permanent sidebar layout
- Linux and Windows packaging scripts
2026-09-25 23:20:57 -05:00

46 lines
1.2 KiB
TypeScript

"use client";
import React from "react";
import { GripVertical } from "lucide-react";
import * as ResizablePrimitive from "react-resizable-panels";
import styles from "./Resizable.module.css";
export const ResizablePanelGroup = ({
className,
...props
}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (
<ResizablePrimitive.PanelGroup
className={`${styles.panelGroup} ${className || ""}`}
{...props}
/>
);
export const ResizablePanel = ({
className,
...props
}: React.ComponentProps<typeof ResizablePrimitive.Panel>) => (
<ResizablePrimitive.Panel
className={`${styles.panel} ${className || ""}`}
{...props}
/>
);
export const ResizableHandle = ({
withHandle = true,
className,
...props
}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
withHandle?: boolean;
}) => (
<ResizablePrimitive.PanelResizeHandle
className={`${styles.resizeHandle} ${className || ""}`}
{...props}
>
{withHandle && (
<div className={styles.resizeHandleGrip}>
<GripVertical size={12} strokeWidth={1.5} className={styles.gripIcon} />
</div>
)}
</ResizablePrimitive.PanelResizeHandle>
);