feat: auth & admin

This commit is contained in:
2026-06-03 10:41:53 +03:00
parent 612d0f0125
commit 7dc59fb3c4
120 changed files with 4683 additions and 2159 deletions
@@ -15,13 +15,13 @@ Use `requestIdleCallback()` to schedule non-critical work during browser idle pe
```typescript
function handleSearch(query: string) {
const results = searchItems(query)
setResults(results)
const results = searchItems(query);
setResults(results);
// These block the main thread immediately
analytics.track('search', { query })
saveToRecentSearches(query)
prefetchTopResults(results.slice(0, 3))
analytics.track('search', { query });
saveToRecentSearches(query);
prefetchTopResults(results.slice(0, 3));
}
```
@@ -29,21 +29,21 @@ function handleSearch(query: string) {
```typescript
function handleSearch(query: string) {
const results = searchItems(query)
setResults(results)
const results = searchItems(query);
setResults(results);
// Defer non-critical work to idle periods
requestIdleCallback(() => {
analytics.track('search', { query })
})
analytics.track('search', { query });
});
requestIdleCallback(() => {
saveToRecentSearches(query)
})
saveToRecentSearches(query);
});
requestIdleCallback(() => {
prefetchTopResults(results.slice(0, 3))
})
prefetchTopResults(results.slice(0, 3));
});
}
```
@@ -53,41 +53,42 @@ function handleSearch(query: string) {
// Ensure analytics fires within 2 seconds even if browser stays busy
requestIdleCallback(
() => analytics.track('page_view', { path: location.pathname }),
{ timeout: 2000 }
)
{ timeout: 2000 },
);
```
**Chunking large tasks:**
```typescript
function processLargeDataset(items: Item[]) {
let index = 0
let index = 0;
function processChunk(deadline: IdleDeadline) {
// Process items while we have idle time (aim for <50ms chunks)
while (index < items.length && deadline.timeRemaining() > 0) {
processItem(items[index])
index++
processItem(items[index]);
index++;
}
// Schedule next chunk if more items remain
if (index < items.length) {
requestIdleCallback(processChunk)
requestIdleCallback(processChunk);
}
}
requestIdleCallback(processChunk)
requestIdleCallback(processChunk);
}
```
**With fallback for unsupported browsers:**
```typescript
const scheduleIdleWork = window.requestIdleCallback ?? ((cb: () => void) => setTimeout(cb, 1))
const scheduleIdleWork =
window.requestIdleCallback ?? ((cb: () => void) => setTimeout(cb, 1));
scheduleIdleWork(() => {
// Non-critical work
})
});
```
**When to use:**