diff options
Diffstat (limited to 'gui/src/renderer/lib')
| -rw-r--r-- | gui/src/renderer/lib/styles.ts | 9 | ||||
| -rw-r--r-- | gui/src/renderer/lib/utilityHooks.ts | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gui/src/renderer/lib/styles.ts b/gui/src/renderer/lib/styles.ts new file mode 100644 index 0000000000..554e669373 --- /dev/null +++ b/gui/src/renderer/lib/styles.ts @@ -0,0 +1,9 @@ +type NonTransientPropKey<K> = K extends `$${infer L}` ? L : K; + +export type NonTransientProps<T, K extends NonTransientPropKey<keyof T>> = { + [P in keyof T as NonTransientPropKey<P> extends K ? NonTransientPropKey<P> : P]: T[P]; +}; + +export type TransientProps<T, K extends keyof T> = { + [P in keyof T as P extends K ? `$${P & string}` : P]: T[P]; +}; diff --git a/gui/src/renderer/lib/utilityHooks.ts b/gui/src/renderer/lib/utilityHooks.ts index 378a6d5ae5..49f508a883 100644 --- a/gui/src/renderer/lib/utilityHooks.ts +++ b/gui/src/renderer/lib/utilityHooks.ts @@ -16,6 +16,10 @@ export function useMounted() { return isMounted; } +export function useStyledRef<T>(): React.RefObject<T> { + return useRef() as React.RefObject<T>; +} + export function useCombinedRefs<T>(...refs: (React.Ref<T> | undefined)[]): React.RefCallback<T> { return useCallback((element: T | null) => refs.forEach((ref) => assignToRef(element, ref)), []); } |
