import { FC, useEffect } from 'react'; import { Avatar, Button, Table, TableColumnsType, Typography } from 'antd'; import { UserOutlined } from '@ant-design/icons'; import { Schemas, useBreadcrumbStore, useCheckLoginChannel, useRouterStore, useTableParams, useUserList, } from '@l-clutch/core'; import { FollowTag } from './FollowTag'; import { LastLoggedInDate } from './LastLoggedInDate'; export const UserList: FC = () => { useCheckLoginChannel({ content: 'ユーザー機能を使用するには、LINEログインチャネルの設定が必要です。設定を行ってから再度お試しください。', key: 'user-list', }); const { setPath } = useRouterStore(); const { tableParams, setTableParams, setTotal, request } = useTableParams(); const { set: setBreadcrumbs } = useBreadcrumbStore(); const { data, isLoading } = useUserList(request); useEffect(() => { setBreadcrumbs([{ title: 'ユーザー' }]); }, []); useEffect(() => { if (data?.total) { setTotal(data.total); } }, [data]); const columns: TableColumnsType = [ { dataIndex: 'avatar_urls', key: 'avator', render: (urls: Schemas['User']['avatar_urls']) => } />, }, { title: '名前', dataIndex: 'line_info', key: 'name', render: (lineInfo: Schemas['User']['line_info']) => ( {lineInfo?.display_name !== '' ? lineInfo?.display_name : '(名前未取得)'} ), }, { title: '友だち追加状態', dataIndex: 'line_info', key: 'follow', render: (lineInfo: Schemas['User']['line_info']) => , }, { title: '最終ログイン', key: 'lastLoginAt', render: (user) => , }, { title: 'アクション', key: 'action', render: (user) => , }, ]; return ( <> ユーザー record.id!} dataSource={data?.items} pagination={tableParams.pagination} onChange={setTableParams} loading={isLoading} /> ); };