From 8f98ea0ca717d77271bbc787c8daf942dd59f70d Mon Sep 17 00:00:00 2001 From: steveoh Date: Wed, 6 Nov 2024 16:35:40 -0700 Subject: [PATCH] feat(spinner): introduce a busy bar this is a great component to use with the useViewLoading hook above an esri.Map component --- .../src/components/Spinner.stories.tsx | 13 +++++++- .../src/components/Spinner.tsx | 30 ++++++++++++++++--- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/packages/utah-design-system/src/components/Spinner.stories.tsx b/packages/utah-design-system/src/components/Spinner.stories.tsx index be6317be..8e123ecf 100644 --- a/packages/utah-design-system/src/components/Spinner.stories.tsx +++ b/packages/utah-design-system/src/components/Spinner.stories.tsx @@ -1,5 +1,5 @@ import type { Meta } from '@storybook/react'; -import { Spinner as Component } from './Spinner'; +import { BusyBar, Spinner as Component } from './Spinner.tsx'; const meta: Meta = { component: Component, @@ -14,3 +14,14 @@ const meta: Meta = { export default meta; export const Example = {}; + +export const BarExample = { + render: (args: { busy?: boolean }) => ( +
+ +
+ ), + args: { + busy: true, + }, +}; diff --git a/packages/utah-design-system/src/components/Spinner.tsx b/packages/utah-design-system/src/components/Spinner.tsx index 8a95f693..44c6f98f 100644 --- a/packages/utah-design-system/src/components/Spinner.tsx +++ b/packages/utah-design-system/src/components/Spinner.tsx @@ -1,12 +1,16 @@ +import { useProgressBar } from 'react-aria'; + export const Spinner = () => { + const { progressBarProps } = useProgressBar({ + isIndeterminate: true, + }); + return ( , ms = 2500) => { return promise; }; + +export const BusyBar = ({ busy }: { busy?: boolean }) => { + const { progressBarProps } = useProgressBar({ + isIndeterminate: true, + }); + + if (!busy) { + return null; + } + + return ( +
+ ); +};