about summary refs log tree commit diff
path: root/src/components/Loader.web.tsx
diff options
context:
space:
mode:
authorSamuel Newman <mozzius@protonmail.com>2024-04-04 23:18:06 +0100
committerGitHub <noreply@github.com>2024-04-04 23:18:06 +0100
commit93b606e55a7bb10cc77665c68c75b6b13a673c9f (patch)
tree75c5b7f6c5f38b3fd70888f8759ed387bb3eeff5 /src/components/Loader.web.tsx
parent575f390d7b4f295f9b163fb029cd2bd0088c83f9 (diff)
downloadvoidsky-93b606e55a7bb10cc77665c68c75b6b13a673c9f.tar.zst
Use CSS keyframe animation for spinner on web (#3411)
* Use css keyframe animation for spinner on web

* duplicate css to index.html
Diffstat (limited to 'src/components/Loader.web.tsx')
-rw-r--r--src/components/Loader.web.tsx34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/components/Loader.web.tsx b/src/components/Loader.web.tsx
new file mode 100644
index 000000000..d8182673f
--- /dev/null
+++ b/src/components/Loader.web.tsx
@@ -0,0 +1,34 @@
+import React from 'react'
+import {View} from 'react-native'
+
+import {atoms as a, flatten, useTheme} from '#/alf'
+import {Props, useCommonSVGProps} from '#/components/icons/common'
+import {Loader_Stroke2_Corner0_Rounded as Icon} from '#/components/icons/Loader'
+
+export function Loader(props: Props) {
+  const t = useTheme()
+  const common = useCommonSVGProps(props)
+
+  return (
+    <View
+      style={[
+        a.relative,
+        a.justify_center,
+        a.align_center,
+        {width: common.size, height: common.size},
+      ]}>
+      {/* css rotation animation - /bskyweb/templates/base.html */}
+      <div className="rotate-500ms">
+        <Icon
+          {...props}
+          style={[
+            a.absolute,
+            a.inset_0,
+            t.atoms.text_contrast_high,
+            flatten(props.style),
+          ]}
+        />
+      </div>
+    </View>
+  )
+}