summaryrefslogtreecommitdiffhomepage
path: root/gui/src/renderer/lib
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2023-10-24 19:34:15 +0200
committerOskar Nyberg <oskar@mullvad.net>2023-10-30 18:03:44 +0100
commit754b15058eaf37dba76387f803e623a94698242f (patch)
tree6f996701731aa786118774746b56cafe01abcf6b /gui/src/renderer/lib
parent67ab02560bbc0508eaa82c66b04868a388e5ebc9 (diff)
downloadmullvadvpn-754b15058eaf37dba76387f803e623a94698242f.tar.xz
mullvadvpn-754b15058eaf37dba76387f803e623a94698242f.zip
Add types for convering between transient props
Diffstat (limited to 'gui/src/renderer/lib')
-rw-r--r--gui/src/renderer/lib/styles.ts9
1 files changed, 9 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];
+};