Appearance
App Data Store ​
File Information ​
- Path:
app/stores/appData.ts - Purpose: Manages application data with caching support
Overview ​
The App Data Store manages application-wide data including banners, tiles, dashboard metrics, and folders with intelligent caching to improve performance.
State ​
typescript
{
bannerData: Banner[] // Banner carousel data
tileData: Tile[] // Dashboard tiles
dashboardData: DashboardData // Dashboard metrics
folders: Folder[] // Folder list
leftMenuOpen: boolean // Sidebar state
logo: string // Brand logo
brand: Brand | null // Brand data
subscriptionFeatures: object // Subscription features
}Actions ​
fetchDashboardData ​
Fetch dashboard metrics with caching.
typescript
await appDataStore.fetchDashboardData(options?)Options:
force?: boolean- Force refresh (bypass cache)ttlMs?: number- Custom cache TTL in milliseconds
Default TTL: 15 minutes
fetchBannerData ​
Fetch banner carousel data.
typescript
await appDataStore.fetchBannerData(options?)fetchTileData ​
Fetch dashboard tiles.
typescript
await appDataStore.fetchTileData(options?)fetchFolders ​
Fetch folder list.
typescript
await appDataStore.fetchFolders(subfolderList, options?)fetchBrandData ​
Fetch brand data.
typescript
await appDataStore.fetchBrandData()setLeftMenuOpen ​
Toggle sidebar state.
typescript
appDataStore.setLeftMenuOpen(true)Caching ​
All fetch actions support caching:
typescript
// Use cache (default)
await appDataStore.fetchDashboardData()
// Force refresh
await appDataStore.fetchDashboardData({ force: true })
// Custom TTL (5 minutes)
await appDataStore.fetchDashboardData({ ttlMs: 5 * 60 * 1000 })Usage Example ​
typescript
const appDataStore = useAppDataStore()
// Fetch dashboard data
onMounted(async () => {
await Promise.all([
appDataStore.fetchDashboardData(),
appDataStore.fetchBannerData(),
appDataStore.fetchTileData()
])
})