{"version":3,"sources":["components/Spinner.js","components/SEO.js","components/PageSpinner.js","AuthenticatedApp.js","UnauthenticatedApp.js","pages/WaitlistConfirm.js","App.js","index.js"],"names":["Spinner","size","className","fill","viewBox","classNames","cx","cy","r","stroke","strokeWidth","d","defaultProps","SEO","title","schemaOrg","url","headline","inLanguage","description","name","genre","browserRequirements","operatingSystem","applicationCategory","offers","price","softwareHelp","copyrightYear","maintainer","author","datePublished","defaultTitle","titleTemplate","type","JSON","stringify","PageSpinner","NotFound","lazy","Dashboard","AccountContainer","Account","Settings","Notifications","BudgetsContainer","Budgets","AddBudget","InvestmentsContainer","Investments","AddInvestment","RecurringContainer","Recurring","AddRecurring","Support","AuthenticatedApp","fallback","path","element","Home","Signup","EmailConfirm","UnauthenticatedApp","WaitlistConfirm","App","user","useUser","supabase","useSupabase","Honeybadger","setContext","user_id","id","view","useQuery","isActive","data","a","from","select","eq","error","notify","R","is_active","isLoading","position","toastOptions","duration","style","padding","revision","process","REACT_APP_VERCEL_GIT_COMMIT_SHA","honeybadger","configure","apiKey","environment","createClient","queryClient","QueryClient","TagManager","initialize","gtmId","ga4react","GA4React","console","log","ReactDOM","render","QueryClientProvider","client","initialIsOpen","document","getElementById"],"mappings":"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","file":"static/js/main.36369ba3.chunk.js","sourcesContent":["import PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nexport default function Spinner({ size }) {\n return (\n
\n \n \n \n \n
\n );\n}\n\nSpinner.propTypes = {\n size: PropTypes.oneOf(['sm', 'md'])\n};\n\nSpinner.defaultProps = {\n size: 'md'\n};\n","import PropTypes from 'prop-types';\nimport { Helmet } from 'react-helmet-async';\n\nfunction SEO({ title }) {\n const description = `Budgeting for everyone who wants to save, invest, and make their money work for them. It's simple with our tools to start taking charge of your money.`;\n\n const schemaOrg = {\n '@context': 'http://schema.org',\n '@type': 'WebApplication',\n url: 'https://slicesum.com',\n headline: 'Budgeting for everyone',\n inLanguage: 'en',\n description,\n name: title,\n genre: 'budgeting',\n browserRequirements: 'Requires JavaScript. Requires HTML5.',\n operatingSystem: 'All',\n applicationCategory: 'FinanceApplication',\n offers: {\n '@type': 'Offer',\n price: 0\n },\n softwareHelp: {\n '@type': 'CreativeWork',\n url: 'https://slicesum.com/help'\n },\n copyrightYear: '2020',\n maintainer: [\n {\n '@type': 'Person',\n name: '0xhjohnson',\n '@id': 'https://github.com/0xhjohnson'\n },\n {\n '@type': 'Person',\n name: 'Arthur Henry',\n '@id': 'https://github.com/ArthurWHenry'\n }\n ],\n author: [\n {\n '@type': 'Person',\n name: '0xhjohnson',\n '@id': 'https://github.com/0xhjohnson'\n },\n {\n '@type': 'Person',\n name: 'Arthur Henry',\n '@id': 'https://github.com/ArthurWHenry'\n }\n ],\n datePublished: '2020'\n };\n\n return (\n \n \n \n );\n}\n\nSEO.propTypes = {\n title: PropTypes.string\n};\n\nSEO.defaultProps = {\n title: null\n};\n\nexport default SEO;\n","import Spinner from 'components/Spinner';\n\nexport default function PageSpinner() {\n return (\n
\n \n
\n );\n}\n","import { Suspense, lazy } from 'react';\nimport { BrowserRouter, Routes, Route } from 'react-router-dom';\nimport PageSpinner from 'components/PageSpinner';\n\nconst NotFound = lazy(() => import('pages/NotFound'));\nconst Dashboard = lazy(() => import('pages/Dashboard'));\nconst AccountContainer = lazy(() => import('pages/account/AccountContainer'));\nconst Account = lazy(() => import('pages/account/Account'));\nconst Settings = lazy(() => import('pages/account/Settings'));\nconst Notifications = lazy(() => import('pages/account/Notifications'));\nconst BudgetsContainer = lazy(() => import('pages/budgets/BudgetsContainer'));\nconst Budgets = lazy(() => import('pages/budgets/Budgets'));\nconst AddBudget = lazy(() => import('pages/budgets/AddBudget'));\nconst InvestmentsContainer = lazy(() =>\n import('pages/investments/InvestmentsContainer')\n);\nconst Investments = lazy(() => import('pages/investments/Investments'));\nconst AddInvestment = lazy(() => import('pages/investments/AddInvestment'));\nconst RecurringContainer = lazy(() =>\n import('pages/recurring/RecurringContainer')\n);\nconst Recurring = lazy(() => import('pages/recurring/Recurring'));\nconst AddRecurring = lazy(() => import('pages/recurring/AddRecurring'));\nconst Support = lazy(() => import('pages/Support'));\n\nfunction AuthenticatedApp() {\n return (\n }>\n \n \n } />\n }>\n } />\n } />\n } />\n \n }>\n } />\n } />\n \n }>\n } />\n } />\n \n }>\n } />\n } />\n \n } />\n } />\n \n \n \n );\n}\n\nexport default AuthenticatedApp;\n","import { Suspense, lazy } from 'react';\nimport { BrowserRouter, Routes, Route } from 'react-router-dom';\nimport Spinner from 'components/Spinner';\n\nconst NotFound = lazy(() => import('pages/NotFound'));\nconst Home = lazy(() => import('pages/Home'));\nconst Signup = lazy(() => import('pages/Signup'));\nconst EmailConfirm = lazy(() => import('pages/EmailConfirm'));\n\nfunction UnauthenticatedApp() {\n return (\n }>\n \n \n } />\n } />\n } />\n } />\n \n \n \n );\n}\n\nexport default UnauthenticatedApp;\n","import SEO from 'components/SEO';\n\nfunction WaitlistConfirm() {\n return (\n <>\n \n
\n
\n
\n
\n
\n

\n You are on the waitlist\n

\n
\n
\n

\n Thanks for joining the waitlist, your spot is secured. We will\n reach out via email once everything is polished and ready to\n go.\n

\n
\n
\n
\n
\n
\n \n );\n}\n\nexport default WaitlistConfirm;\n","import { useUser, useSupabase } from 'use-supabase';\nimport { Toaster } from 'react-hot-toast';\nimport { useQuery } from 'react-query';\nimport * as R from 'remeda';\nimport Honeybadger from '@honeybadger-io/js';\nimport AuthenticatedApp from 'AuthenticatedApp';\nimport UnauthenticatedApp from 'UnauthenticatedApp';\nimport WaitlistConfirm from 'pages/WaitlistConfirm';\nimport PageSpinner from 'components/PageSpinner';\n\nfunction App() {\n const user = useUser();\n const supabase = useSupabase();\n\n if (user) {\n Honeybadger.setContext({\n user_id: user?.id\n });\n }\n\n const { data: isActive, isLoading } = useQuery(\n ['is_active_user', user?.id],\n isActiveUser\n );\n\n async function isActiveUser() {\n if (!user) {\n return false;\n }\n\n const { data, error } = await supabase\n .from('profiles')\n .select('is_active')\n .eq('id', user.id);\n\n if (error) {\n Honeybadger.notify(error);\n }\n\n return R.first(data).is_active;\n }\n\n if (isLoading) return ;\n\n let view;\n if (isActive) view = ;\n else view = ;\n\n return (\n <>\n {user ? view : }\n \n \n );\n}\n\nexport default App;\n","import { StrictMode } from 'react';\nimport ReactDOM from 'react-dom';\nimport { createClient } from '@supabase/supabase-js';\nimport { SupabaseContextProvider } from 'use-supabase';\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { HelmetProvider } from 'react-helmet-async';\nimport { ReactQueryDevtools } from 'react-query/devtools';\nimport Honeybadger from '@honeybadger-io/js';\nimport ErrorBoundary from '@honeybadger-io/react';\nimport TagManager from 'react-gtm-module';\nimport GA4React from 'ga-4-react';\nimport 'index.css';\nimport App from 'App';\n\nconst revision = process.env.REACT_APP_VERCEL_GIT_COMMIT_SHA || 'master';\n\n// Configure honeybadger for error monitoring\nconst honeybadger = Honeybadger.configure({\n apiKey: process.env.REACT_APP_HONEYBADGER_KEY,\n environment: process.env.NODE_ENV,\n revision: revision\n});\n\n// Create supabase client\n// Provides anonymous access to the supabase database\nconst supabase = createClient(\n process.env.REACT_APP_SUPABASE_URL,\n process.env.REACT_APP_SUPABASE_KEY\n);\n\n// Create query client\nconst queryClient = new QueryClient();\n\nTagManager.initialize({\n gtmId: process.env.REACT_APP_GTM\n});\n\nconst ga4react = new GA4React(process.env.REACT_APP_GA);\n\n(async () => {\n try {\n await ga4react.initialize();\n } catch (e) {\n console.log('Adblock is activated, no biggie');\n }\n\n ReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n );\n})();\n"],"sourceRoot":""}