Files
decky-frontend-lib/src/deck-components/Focusable.tsx

20 lines
770 B
TypeScript
Raw Normal View History

import { HTMLAttributes, ReactNode, RefAttributes, VFC } from "react";
2022-06-08 21:40:19 -04:00
import { findModuleChild } from "../webpack";
import { FooterLegendProps } from "./FooterLegend";
2022-06-08 21:40:19 -04:00
export interface FocusableProps extends HTMLAttributes<HTMLDivElement>, FooterLegendProps {
children: ReactNode;
"flow-children"?: string;
focusClassName?: string;
focusWithinClassName?: string;
onActivate?: (e: CustomEvent) => void;
onCancel?: (e: CustomEvent) => void;
2022-06-08 21:40:19 -04:00
}
export const Focusable = findModuleChild((m) => {
if (typeof m !== 'object') return undefined;
for (let prop in m) {
if (m[prop]?.render?.toString()?.includes('["flow-children","onActivate","onCancel","focusClassName",'))
return m[prop];
}
}) as VFC<FocusableProps & RefAttributes<HTMLDivElement>>;