import { createSignal, JSX } from 'solid-js';
interface User {
name: string;
isActive: boolean;
}
const users: User[] = [
{ name: 'Alice', isActive: true },
{ name: 'Bob', isActive: false },
{ name: 'Charlie', isActive: true }
];
const App: () => JSX.Element = () => {
const [activeUsers, setActiveUsers] = createSignal(users.filter(user => user.isActive));
const handleClick = (user: User) => {
const newUsers = activeUsers().map(u => {
if (u === user) {
return {...u, isActive:!u.isActive };
}
return u;
});
setActiveUsers(newUsers);
};
return (
<ul>
{activeUsers().map(user => (
<li key={user.name} onClick={() => handleClick(user)}>
{user.name}
</li>
))}
</ul>
);
};
export default App;