import Page from 'components/layout/Page'; import PageHeader from 'components/layout/PageHeader'; import WebsiteAddForm from 'components/pages/settings/websites/WebsiteAddForm'; import WebsitesTable from 'components/pages/settings/websites/WebsitesTable'; import useApi from 'hooks/useApi'; import useApiFilter from 'hooks/useApiFilter'; import useMessages from 'hooks/useMessages'; import useUser from 'hooks/useUser'; import { ROLES } from 'lib/constants'; import { Button, Icon, Icons, Modal, ModalTrigger, Text, useToasts } from 'react-basics'; export function WebsitesList({ showTeam, showHeader = true, includeTeams, onlyTeams, fetch }) { const { formatMessage, labels, messages } = useMessages(); const { user } = useUser(); const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } = useApiFilter(); const { get, useQuery } = useApi(); const { data, isLoading, error, refetch } = useQuery( ['websites', fetch, user?.id, filter, page, pageSize, includeTeams, onlyTeams], () => get(`/users/${user?.id}/websites`, { filter, page, pageSize, includeTeams, onlyTeams, }), { enabled: !!user }, ); const { showToast } = useToasts(); const handleSave = async () => { await refetch(); showToast({ message: formatMessage(messages.saved), variant: 'success' }); }; const addButton = ( <> {user.role !== ROLES.viewOnly && ( {close => } )} ); return ( {showHeader && {addButton}} ); } export default WebsitesList;