mirror of
https://github.com/SteamDeckHomebrew/decky-frontend-lib.git
synced 2026-05-24 11:58:48 +02:00
feat(components): add Carousel component
This commit is contained in:
28
src/deck-components/Carousel.ts
Normal file
28
src/deck-components/Carousel.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { HTMLAttributes, ReactNode, RefAttributes, VFC } from "react";
|
||||
import { findModuleChild } from "../webpack";
|
||||
|
||||
export interface CarouselProps extends HTMLAttributes<HTMLDivElement> {
|
||||
autoFocus?: boolean;
|
||||
enableBumperPaging?: boolean;
|
||||
fnDoesItemTakeFocus?: (...unknown: any[]) => boolean;
|
||||
fnGetColumnWidth?: (...unknown: any[]) => number;
|
||||
fnGetId?: (id: number) => number;
|
||||
fnItemRenderer?: (id: number, ...unknown: any[]) => ReactNode;
|
||||
fnUpdateArrows?: (...unknown: any[]) => any;
|
||||
initialColumn?: number;
|
||||
nHeight?: number;
|
||||
nIndexLeftmost?: number;
|
||||
nItemHeight?: number;
|
||||
nItemMarginX?: number;
|
||||
nNumItems?: number;
|
||||
name?: string;
|
||||
scrollToAlignment?: 'center';
|
||||
}
|
||||
|
||||
export const Carousel = findModuleChild((m) => {
|
||||
if (typeof m !== 'object') return undefined;
|
||||
for (let prop in m) {
|
||||
if (m[prop]?.render?.toString().includes("setFocusedColumn:"))
|
||||
return m[prop];
|
||||
}
|
||||
}) as VFC<CarouselProps & RefAttributes<HTMLDivElement>>;
|
||||
@@ -1,5 +1,6 @@
|
||||
export * from './Button';
|
||||
export * from './ButtonItem';
|
||||
export * from './Carousel';
|
||||
export * from './Dropdown';
|
||||
export * from './Field';
|
||||
export * from './Focusable';
|
||||
|
||||
Reference in New Issue
Block a user