* get the data for where lines are Signed-off-by: Jess Frazelle <github@jessfraz.com> * make pretty Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fmt Signed-off-by: Jess Frazelle <github@jessfraz.com> * new shit Signed-off-by: Jess Frazelle <github@jessfraz.com> * beginning of stufff Signed-off-by: Jess Frazelle <github@jessfraz.com> * cleanup Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * add new fns Signed-off-by: Jess Frazelle <github@jessfraz.com> * basic function Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix ups to keep order Signed-off-by: Jess Frazelle <github@jessfraz.com> * further Signed-off-by: Jess Frazelle <github@jessfraz.com> * failing test Signed-off-by: Jess Frazelle <github@jessfraz.com> * do it in rust Signed-off-by: Jess Frazelle <github@jessfraz.com> * trait Signed-off-by: Jess Frazelle <github@jessfraz.com> * start of ui integration Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * weird shit Signed-off-by: Jess Frazelle <github@jessfraz.com> * generate close on close Signed-off-by: Jess Frazelle <github@jessfraz.com> * start of constraint functions Signed-off-by: Jess Frazelle <github@jessfraz.com> * helper functions Signed-off-by: Jess Frazelle <github@jessfraz.com> * make work Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * constraints w ranges Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fmt Signed-off-by: Jess Frazelle <github@jessfraz.com> * skip Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * comment Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * throw Signed-off-by: Jess Frazelle <github@jessfraz.com> * make close a bit less sensitive in move scenario Signed-off-by: Jess Frazelle <github@jessfraz.com> * cleanup shit we didnt end up using Signed-off-by: Jess Frazelle <github@jessfraz.com> * make it less hard to close Signed-off-by: Jess Frazelle <github@jessfraz.com> * Fix edit after sketch * Move to plane for sketch * Fix pathToNode for ast mods * Fix exit sketch mode with escape * Fix fmt since my editor did it wrong * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix link Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: Adam Sunderland <adam@kittycad.io>
58 lines
2.0 KiB
TypeScript
58 lines
2.0 KiB
TypeScript
import { Dialog } from '@headlessui/react'
|
|
import { useStore } from '../useStore'
|
|
import { ActionButton } from './ActionButton'
|
|
import { faX } from '@fortawesome/free-solid-svg-icons'
|
|
|
|
const DownloadAppBanner = () => {
|
|
const { isBannerDismissed, setBannerDismissed } = useStore((s) => ({
|
|
isBannerDismissed: s.isBannerDismissed,
|
|
setBannerDismissed: s.setBannerDismissed,
|
|
}))
|
|
|
|
return (
|
|
<Dialog
|
|
className="fixed inset-0 top-auto z-50 bg-warn-20 text-warn-80 px-8 py-4"
|
|
open={!isBannerDismissed}
|
|
onClose={() => ({})}
|
|
>
|
|
<Dialog.Panel className="max-w-3xl mx-auto">
|
|
<div className="flex gap-2 justify-between items-start">
|
|
<h2 className="text-xl font-bold mb-4">
|
|
KittyCAD Modeling App is better as a desktop app!
|
|
</h2>
|
|
<ActionButton
|
|
Element="button"
|
|
onClick={() => setBannerDismissed(true)}
|
|
icon={{
|
|
icon: faX,
|
|
bgClassName:
|
|
'bg-warn-70 hover:bg-warn-80 dark:bg-warn-70 dark:hover:bg-warn-80',
|
|
iconClassName:
|
|
'text-warn-10 group-hover:text-warn-10 dark:text-warn-10 dark:group-hover:text-warn-10',
|
|
}}
|
|
className="!p-0 !bg-transparent !border-transparent"
|
|
/>
|
|
</div>
|
|
<p>
|
|
The browser version of the app only saves your data temporarily in{' '}
|
|
<code className="text-base inline-block px-0.5 bg-warn-30/50 rounded">
|
|
localStorage
|
|
</code>
|
|
, and isn't backed up anywhere! Visit{' '}
|
|
<a
|
|
href="https://kittycad.io/modeling-app/download"
|
|
rel="noopener noreferrer"
|
|
target="_blank"
|
|
className="text-warn-80 dark:text-warn-80 dark:hover:text-warn-70 underline"
|
|
>
|
|
our website
|
|
</a>{' '}
|
|
to download the app for the best experience.
|
|
</p>
|
|
</Dialog.Panel>
|
|
</Dialog>
|
|
)
|
|
}
|
|
|
|
export default DownloadAppBanner
|