Files
lume/src/components/columns/account/list.tsx
Ren Amamiya 1c9420f370 minor fixes
2023-03-19 17:32:00 +07:00

36 lines
1.1 KiB
TypeScript

import { ActiveAccount } from '@components/columns/account/active';
import { InactiveAccount } from '@components/columns/account/inactive';
import useLocalStorage from '@rehooks/local-storage';
import { useCallback, useEffect, useState } from 'react';
import Database from 'tauri-plugin-sql-api';
export default function AccountList() {
const [currentUser]: any = useLocalStorage('current-user');
const [users, setUsers] = useState([]);
const renderAccount = useCallback(
(user: { id: string }) => {
if (user.id === currentUser.id) {
return <ActiveAccount key={user.id} user={user} />;
} else {
return <InactiveAccount key={user.id} user={user} />;
}
},
[currentUser.id]
);
const getAccounts = useCallback(async () => {
const db = await Database.load('sqlite:lume.db');
const result: any = await db.select('SELECT * FROM accounts');
setUsers(result);
}, []);
useEffect(() => {
getAccounts().catch(console.error);
}, [getAccounts]);
return <>{users.map((user) => renderAccount(user))}</>;
}