Files
supabase/apps/studio/components/ui/CountdownTimer/CountdownTimerSpan.tsx
Jonathan Summers-MuirandJoshen Lim 9f420962e1 Feat/compute and disk (#30068)
* inited. added disk config to a new page

* add instances

* move moar

* moved things around. billing badges updated. compute added

* tidy

* new components

* form now dynamically updating itself

* updated compute form. moved warning panels. added collapsible for advanced options

* review dialog now only showing what is relevant

* Update DiskManagementForm.tsx

* compute sizes now a reccomendation

* fix old form

* started adding flags

* removed unused code. fixed issue with IOPS price showing on smaller compute

* moar clearning

* IOPS logic wrong way round

* type fixes

* start adding better error handling

* TIDY

* moved everything to own file

* tidy

* fix hydration issue

* moved some components around

* clean up

* inline errors

* update form message

* Update DiskManagementForm.tsx

* error fields fixed. some formatting issues. nano added as an option

* fix constants

* add some plan restrictions

* moar

* units updated. labels updated

* Update DiskManagement.schema.ts

* fix a ton of type issues

* text udpates

* add panel to suggest switching to io2

* more notice board stuff

* number formatting. moved a file

* Update DiskManagementForm.tsx

* remove console logs

* upgrade comms. more type fixes

* add empty states for the old areas

* more links

* updated some label issues

* hide labels when chart is active

* Update DiskManagement.utils.ts

* Delete next-env.d.ts

* Update DiskManagementForm.tsx

* Update DiskManagement.schema.ts

* text updates

* Update DiskManagement.constants.tsx

* Update next-env.d.ts

* Update next-env.d.ts

* Small clean uop

* Clean up empty files

* Clean up spelling

* Clean up more

* Fix typo in file name

* Clean up import statements

* Update DiskManagementForm.tsx

* fix issues

* Update ProjectLayout.tsx

* Remove unused import

* Fix

* Address nit

* Update database.tsx

* remove supress toast

* Update DiskManagement.schema.ts

* Update database.tsx

* change upgrade comms

* Update DiskManagementPanelForm.tsx

* fixes

* fix button size on old form

* Update DiskManagementForm.tsx

* Update StorageTypeField.tsx

* update labels on compute

* dont show banner when infra is FLY

* update comms. hide disk config for FLY

* Fix TS

* Last round of clean upo

* fix message state

* fix message

* Fix TS

* Update DiskManagement.utils.ts

* fix errors

* Update BillingChangeBadge.tsx

* fixed some label issues

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2024-11-04 09:05:37 +00:00

46 lines
1.2 KiB
TypeScript

import MotionNumber from 'motion-number'
interface CountdownTimerSpanProps {
seconds: number
}
const CountdownTimerSpan = ({ seconds }: CountdownTimerSpanProps) => {
const transitionConfig = {
y: { type: 'spring', duration: 0.35, bounce: 0 },
}
const hours = Math.floor(seconds / 3600)
const minutes = Math.floor((seconds % 3600) / 60)
const remainingSeconds = seconds % 60
const formatConfig = { minimumIntegerDigits: 2 }
const formatValue = (value: number) => value.toString().padStart(2, '0')
return (
<span className="inline-flex gap-2">
<span className="text-foreground-lighter text-sm p-0">Time remaining: </span>
<span className="text-foreground text-sm font-mono flex items-center gap-0">
<MotionNumber
format={formatConfig}
value={formatValue(hours)}
transition={transitionConfig}
/>
hr
<MotionNumber
format={formatConfig}
value={formatValue(minutes)}
transition={transitionConfig}
/>
m
<MotionNumber
format={formatConfig}
value={formatValue(remainingSeconds)}
transition={transitionConfig}
/>
</span>
</span>
)
}
export default CountdownTimerSpan