Fix: Ensure all skills are tracked as files, not submodules

This commit is contained in:
sck_0
2026-01-14 18:48:48 +01:00
parent 7f46ed8ca1
commit 8bd204708b
1113 changed files with 82065 additions and 2 deletions

View File

@@ -0,0 +1,81 @@
import { useState } from 'react';
import { useTodos } from './hooks/useTodos';
import { TodoForm } from './components/TodoForm';
import { TodoList } from './components/TodoList';
import { EmptyState } from './components/EmptyState';
import { ConfirmDialog } from './components/ConfirmDialog';
import './App.css';
function App() {
const { todos, loading, error, addTodo, toggleTodo, removeTodo } = useTodos();
const [confirmDialog, setConfirmDialog] = useState<{
isOpen: boolean;
todoId: number | null;
}>({
isOpen: false,
todoId: null,
});
const handleDeleteClick = (todoId: number) => {
setConfirmDialog({
isOpen: true,
todoId,
});
};
const handleConfirmDelete = async () => {
if (confirmDialog.todoId !== null) {
await removeTodo(confirmDialog.todoId);
setConfirmDialog({
isOpen: false,
todoId: null,
});
}
};
const handleCancelDelete = () => {
setConfirmDialog({
isOpen: false,
todoId: null,
});
};
return (
<div className="app">
<header className="app-header">
<h1>Todo App</h1>
</header>
<main className="app-main">
<TodoForm onAddTodo={addTodo} />
{error && (
<div className="error-message">
{error}
</div>
)}
{loading ? (
<div className="loading">Loading todos...</div>
) : todos.length === 0 ? (
<EmptyState />
) : (
<TodoList
todos={todos}
onToggle={toggleTodo}
onDelete={handleDeleteClick}
/>
)}
</main>
<ConfirmDialog
isOpen={confirmDialog.isOpen}
message="Are you sure you want to delete this todo?"
onConfirm={handleConfirmDelete}
onCancel={handleCancelDelete}
/>
</div>
);
}
export default App;