Welcome to Create Ace App β¨
β
State saved through refresh!β
API calls, anchors & redirects are typesafe!β
State saved while offline!
πΈ Total Balance
Loading...π Monthly Expenses
Loading...π Monthly Income
Loading...π° Categories
π Transactions
π€ Markdown Example
This SEO friendly markdown β€οΈ aims to briefly summarize whatβs included with Create Ace App!
βοΈ General
Create Ace Appcan be installed as aDesktop applicationβ
π§ State
- State saved through
refresh& whileofflineβ - On page load, static content is available
immediately& dynamic state isstreamedin β
π Autocomplete
- Anchors are typesafe β
- Redirects are typesafe β
- APIβs called with typesafe functions β
π§© Components
- Creating & updating charts is easy β
- Aria compliant
tabs,toasts,tooltipsβ - Nav animations continue as current page updates β
- Tables are
filterable,scrollable&sortableβ - Smooth list addition animations @
Chat&Fortunesβ SEOFriendlyMarkdownw/Code Highlighting,Tabs& Solid component support from a.mdfile β
Home.tsx
apiGetFinances.ts
apiGetTransactions.ts
// Component that creates this page π
export default new Route('/')
.layouts([RootLayout])
.component(() => {
const {sync} = useStore()
apiGetTransactions({ // api's load simultaneously btw β€οΈ
queryType: 'stream',
onSuccess: (d) => sync('transactions', d)
})
apiGetFinances({ // on refresh => requests start on the BE π€
queryType: 'stream',
onSuccess(d) {
sync('financeSummary', d.summary)
sync('financeCategories', d.categories)
}
})
return <>
<Title>π‘ Home Β· Create Ace App</Title>
<Meta property="og:title" content="π‘ Home Β· Create Ace App" />
<Meta property="og:type" content="website" />
<Meta property="og:url" content={buildOrigin} />
<Meta property="og:image" content={buildOrigin + '/og/home.webp'} />
<main class="home">
<Welcome />
<section class="summaries">
<Summary key="balance" label="πΈ Total Balance" />
<Summary key="monthlyExpenses" label="π Monthly Expenses" />
<Summary key="monthlyIncome" label="π Monthly Income" />
</section>
<section class="vizs">
<Categories />
<Transactions/>
</section>
<MarkdownItStatic content={mdAppInfo} registerHljs={registerHljs} $div={{ class: 'markdown' }} />
<Nav showRefresh={true} />
</main>
</>
})