managarten/apps/contacts/apps/web/src/lib/components/skeletons/utils.ts
Till-JS fc3129aaa5 refactor(contacts): major component and API refactoring
Components:
- Simplify ContactDetailModal and NewContactModal
- Enhance ContactsToolbarContent with expanded functionality
- Add AlphabetNavContextMenu for alphabet navigation
- Add SocialMediaLinks component for displaying social links
- Add SocialMediaFields form component
- Add ContactNetworkView as integrated network visualization
- Improve skeleton components with shared utilities

API & Config:
- Add centralized API client module
- Refactor contacts API with better error handling
- Add social-media configuration module
- Update batch and config modules

Stores:
- Simplify filter store
- Update settings and user-settings stores
- Clean up view-mode store
- Minor auth store updates

Routes:
- Update layout with simplified navigation
- Minor updates to settings, statistics pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 21:31:36 +01:00

19 lines
511 B
TypeScript

/**
* Skeleton utility functions
*/
/**
* Calculate opacity for cascading fade effect in skeleton lists
* @param index Current item index
* @param count Total number of items
* @param minOpacity Minimum opacity (default: 0.3)
* @returns Opacity value between minOpacity and 1
*/
export function calculateFadeOpacity(
index: number,
count: number,
minOpacity: number = 0.3
): number {
const fadeStep = (1 - minOpacity) / Math.max(count - 1, 1);
return Math.max(minOpacity, 1 - index * fadeStep);
}