- Added package.json for project configuration and dependencies. - Included images for the application (teh-jokur.png and vite.svg). - Created main application structure with App.svelte, CounterCard.svelte, and AddCounterCard.svelte components. - Implemented functionality for adding, editing, incrementing, and decrementing counters. - Added clickOutside utility for handling outside clicks in editing mode. - Configured TypeScript with appropriate tsconfig files for app and node. - Set up Vite configuration for building the application. - Added global styles in app.css for consistent UI design.
14 lines
365 B
TypeScript
14 lines
365 B
TypeScript
export function clickOutside(node: HTMLElement, callback: () => void) {
|
|
const handleClick = (event: MouseEvent) => {
|
|
if (!node.contains(event.target as Node)) {
|
|
callback();
|
|
}
|
|
};
|
|
document.addEventListener('mousedown', handleClick, true);
|
|
|
|
return {
|
|
destroy() {
|
|
document.removeEventListener('mousedown', handleClick, true);
|
|
}
|
|
};
|
|
} |