From 0303724794f00cde48742fc7f3b1f60c9bfb79da Mon Sep 17 00:00:00 2001 From: AAGaming Date: Wed, 25 May 2022 20:26:30 -0400 Subject: [PATCH] export more stuff, replace button component with actual button and move the old one to ButtonItem --- src/deck-components/Button.tsx | 27 +++++++++++++++++++-------- src/deck-components/ButtonItem.tsx | 16 ++++++++++++++++ src/deck-components/Spinner.tsx | 16 ++++++++++++++++ src/deck-components/index.ts | 2 ++ src/webpack.ts | 20 +++++++++++++++++++- 5 files changed, 72 insertions(+), 9 deletions(-) create mode 100644 src/deck-components/ButtonItem.tsx create mode 100644 src/deck-components/Spinner.tsx diff --git a/src/deck-components/Button.tsx b/src/deck-components/Button.tsx index b174359..79356df 100644 --- a/src/deck-components/Button.tsx +++ b/src/deck-components/Button.tsx @@ -3,14 +3,25 @@ import { FC } from 'react'; import { CommonUIModule } from '../webpack'; interface ButtonProps { - label?: string; - description?: string; - layout?: 'below'; - onClick?(e: MouseEvent): void; + className?: string; + noFocusRing?: boolean; disabled?: boolean; - bottomSeparator?: boolean; + onClick?(e: MouseEvent): void; + onPointerDown?(e: PointerEvent): void; + onPointerUp?(e: PointerEvent): void; + onPointerCancel?(e: PointerEvent): void; + onMouseDown?(e: PointerEvent): void; + onMouseUp?(e: MouseEvent): void; + onTouchStart?(e: TouchEvent): void; + onTouchEnd?(e: TouchEvent): void; + onTouchCancel?(e: TouchEvent): void; + onSubmit?(e: SubmitEvent): void; } -export const Button = Object.values(CommonUIModule).find((mod: any) => - mod?.render?.toString()?.includes('childrenContainerWidth:"min"'), -) as FC; +const DialogButton = Object.values(CommonUIModule).find((mod: any) => + mod?.render?.toString()?.includes('Object.assign({type:"button"') && mod?.render?.toString()?.includes('DialogButton') +) as any; + +// Button isn't exported, so call DialogButton to grab it + +export const Button = DialogButton!.render({}).type as FC // its actually a forwarded ref but that doesn't really matter in usage \ No newline at end of file diff --git a/src/deck-components/ButtonItem.tsx b/src/deck-components/ButtonItem.tsx new file mode 100644 index 0000000..5e7ab4e --- /dev/null +++ b/src/deck-components/ButtonItem.tsx @@ -0,0 +1,16 @@ +import { FC } from 'react'; + +import { CommonUIModule } from '../webpack'; + +interface ButtonItemProps { + label?: string; + description?: string; + layout?: 'below'; + onClick?(e: MouseEvent): void; + disabled?: boolean; + bottomSeparator?: boolean; +} + +export const ButtonItem = Object.values(CommonUIModule).find((mod: any) => + mod?.render?.toString()?.includes('childrenContainerWidth:"min"'), +) as FC; diff --git a/src/deck-components/Spinner.tsx b/src/deck-components/Spinner.tsx new file mode 100644 index 0000000..72d9c73 --- /dev/null +++ b/src/deck-components/Spinner.tsx @@ -0,0 +1,16 @@ +import { FC } from 'react'; + +import { IconsModule } from '../webpack'; + +// interface ButtonProps { +// label?: string; +// description?: string; +// layout?: 'below'; +// onClick?(e: MouseEvent): void; +// disabled?: boolean; +// bottomSeparator?: boolean; +// } + +export const Spinner = Object.values(IconsModule).find((mod: any) => + mod?.toString()?.includes("Spinner)}),a.createElement(\"path\",{d:\"M18 "), +) as FC<{}>; \ No newline at end of file diff --git a/src/deck-components/index.ts b/src/deck-components/index.ts index 04d1e0f..2d31aca 100644 --- a/src/deck-components/index.ts +++ b/src/deck-components/index.ts @@ -1,6 +1,8 @@ export * from './Button'; +export * from './ButtonItem'; export * from './Menu'; export * from './Modal'; export * from './Slider'; +export * from './Spinner'; export * from './static-classes'; export * from './Toggle'; diff --git a/src/webpack.ts b/src/webpack.ts index 8377dfe..09f0fba 100644 --- a/src/webpack.ts +++ b/src/webpack.ts @@ -58,7 +58,25 @@ export const CommonUIModule = allModules.find((m: Module) => { return false; }); +export const IconsModule = allModules.find((m: Module) => { + if (typeof m !== "object") return undefined; + for (let prop in m) { + if (m[prop]?.toString()?.includes("Spinner)}),a.createElement(\"path\",{d:\"M18 ")) return true; + } + return false; +}) + export const Router = findModuleChild((m: Module) => { if (typeof m !== "object") return undefined; - for (let prop in m) { if (m[prop]?.Navigate && m[prop]?.NavigationManager) return m[prop]} + for (let prop in m) { + if (m[prop]?.Navigate && m[prop]?.NavigationManager) return m[prop] + } +}) + +export const ReactRouter = allModules.find((m: Module) => { + if (typeof m !== "object") return undefined; + for (let prop in m) { + if (m[prop]?.computeRootMatch) return true + } + return false; }) \ No newline at end of file