* Add `react-resizable-panels` library * Implement a custom SeparatorView * Add a `LeftResizablePanelView` * Add a custom `GroupView` * Export everything from shared-components * Make it possible to track width/collapse state through settings * Add a view model to drive the views * Render views without disrupting the old room list * Fix lint error * Disable user interaction on collapsed panel * Prevent widgets fron hijacking pointer events * Expand to full width on separator click * Separator should be shown when focused via keyboard * Update tests * Use data-attribute for hover * Write stories for SeperatorView * Write vite tests for SeparatorView * Write tests for LeftResizablePanelView * More tests * Fix lint errors * Fix flakey border on the roomlst * Fix storybook axe violation * Update snapshots * Fix playwright tests * Fix sonarcloud issues * Use translated string * Add better js-doc comments * Rename `ResizerSnapshot` to `ResizerViewSnapshot` * Externalize react-resizable-panels * Link figma designs to stories * Write playwright tests * Update screenshots * Fix lint errors * Update more screenshots * Update more screenshots * Fix flaky toast test * Update apps/web/playwright/e2e/crypto/toasts.spec.ts Co-authored-by: Andy Balaam <andy.balaam@matrix.org> * Fix indentation --------- Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
/*
|
|
* Copyright 2026 Element Creations Ltd.
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
|
|
* Please see LICENSE files in the repository root for full details.
|
|
*/
|
|
|
|
/**
|
|
* This is the id given to the resizable container that holds
|
|
* the left panel contents.
|
|
*/
|
|
export const LEFT_PANEL_ID = "left-panel";
|
|
|
|
export * from "./group/GroupView";
|
|
export * from "./separator/SeparatorView";
|
|
export * from "./panel/LeftResizablePanelView";
|
|
|
|
/**
|
|
* Common snapshot for GroupView, SeparatorView and LeftResizablePanelView.
|
|
*/
|
|
export interface ResizerViewSnapshot {
|
|
/**
|
|
* Whether the left panel is collapsed or not.
|
|
*/
|
|
isCollapsed: boolean;
|
|
/**
|
|
* This is the initial size of the panel if available; should be interpreted as percentage.
|
|
*/
|
|
initialSize?: number;
|
|
/**
|
|
* Whether the separator is currently focused by navigating
|
|
* to it using keyboard input.
|
|
*/
|
|
isFocusedViaKeyboard: boolean;
|
|
}
|
|
|
|
/**
|
|
* Export relevant parts of the underlying library.
|
|
*/
|
|
export {
|
|
Group as ResizableGroup,
|
|
Panel,
|
|
Separator,
|
|
type PanelSize,
|
|
type PanelImperativeHandle,
|
|
} from "react-resizable-panels";
|