Code cleanup.

This commit is contained in:
Mike Cao 2023-08-18 21:52:59 -07:00
parent 21cdb06571
commit 7d5a24044a
10 changed files with 34 additions and 43 deletions

View File

@ -51,7 +51,8 @@
"@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-var-requires": "off", "@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/no-empty-interface": "off" "@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/no-unused-vars": ["error", { "ignoreRestSiblings": true }]
}, },
"globals": { "globals": {
"React": "writable" "React": "writable"

View File

@ -1,4 +1,4 @@
import EmptyPlaceholder from 'components/common/EmptyPlaceholder'; import Empty from 'components/common/Empty';
import useMessages from 'hooks/useMessages'; import useMessages from 'hooks/useMessages';
import { useState } from 'react'; import { useState } from 'react';
import { import {
@ -36,7 +36,7 @@ export function SettingsTable({
return ( return (
<> <>
{showSearch && ( {showSearch && !!value.length && (
<SearchField <SearchField
onChange={handleFilterChange} onChange={handleFilterChange}
delay={1000} delay={1000}
@ -47,7 +47,7 @@ export function SettingsTable({
/> />
)} )}
{value.length === 0 && filterValue && ( {value.length === 0 && filterValue && (
<EmptyPlaceholder message={formatMessage(messages.noResultsFound)}></EmptyPlaceholder> <Empty message={formatMessage(messages.noResultsFound)} />
)} )}
{value.length > 0 && ( {value.length > 0 && (
<Table columns={columns} rows={value}> <Table columns={columns} rows={value}>

View File

@ -30,7 +30,7 @@ function ReportItem({ title, description, url, icon }) {
); );
} }
export function ReportTemplates() { export function ReportTemplates({ showHeader = true }) {
const { formatMessage, labels } = useMessages(); const { formatMessage, labels } = useMessages();
const reports = [ const reports = [
@ -56,7 +56,7 @@ export function ReportTemplates() {
return ( return (
<Page> <Page>
<PageHeader title={formatMessage(labels.reports)} /> {showHeader && <PageHeader title={formatMessage(labels.reports)} />}
<div className={styles.reports}> <div className={styles.reports}>
{reports.map(({ title, description, url, icon }) => { {reports.map(({ title, description, url, icon }) => {
return ( return (

View File

@ -7,7 +7,7 @@ import { Button, Icon, Icons, Text } from 'react-basics';
import ReportsTable from './ReportsTable'; import ReportsTable from './ReportsTable';
export function ReportsPage() { export function ReportsPage() {
const { formatMessage, labels, messages } = useMessages(); const { formatMessage, labels } = useMessages();
const { const {
reports, reports,
error, error,
@ -47,9 +47,7 @@ export function ReportsPage() {
showDomain={true} showDomain={true}
/> />
)} )}
{!hasData && ( {!hasData && <EmptyPlaceholder />}
<EmptyPlaceholder message={formatMessage(messages.noDataAvailable)}></EmptyPlaceholder>
)}
</Page> </Page>
); );
} }

View File

@ -55,11 +55,7 @@ export function TeamWebsitesTable({
</Button> </Button>
</Link> </Link>
{canRemove && ( {canRemove && (
<TeamWebsiteRemoveButton <TeamWebsiteRemoveButton teamId={teamId} websiteId={websiteId} onSave={onSave} />
teamId={teamId}
websiteId={websiteId}
onSave={onSave}
></TeamWebsiteRemoveButton>
)} )}
</> </>
); );

View File

@ -1,14 +1,15 @@
import Page from 'components/layout/Page';
import useApi from 'hooks/useApi'; import useApi from 'hooks/useApi';
import WebsitesTable from 'components/pages/settings/websites/WebsitesTable'; import WebsitesTable from 'components/pages/settings/websites/WebsitesTable';
import useMessages from 'hooks/useMessages';
import useApiFilter from 'hooks/useApiFilter'; import useApiFilter from 'hooks/useApiFilter';
export function UserWebsites({ userId }) { export function UserWebsites({ userId }) {
const { formatMessage, messages } = useMessages();
const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } = const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } =
useApiFilter(); useApiFilter();
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const { data, isLoading } = useQuery(['user:websites', userId, filter, page, pageSize], () => const { data, isLoading, error } = useQuery(
['user:websites', userId, filter, page, pageSize],
() =>
get(`/users/${userId}/websites`, { get(`/users/${userId}/websites`, {
filter, filter,
page, page,
@ -18,7 +19,7 @@ export function UserWebsites({ userId }) {
const hasData = data && data.length !== 0; const hasData = data && data.length !== 0;
return ( return (
<div> <Page loading={isLoading} error={error}>
{hasData && ( {hasData && (
<WebsitesTable <WebsitesTable
data={data} data={data}
@ -28,8 +29,7 @@ export function UserWebsites({ userId }) {
filterValue={filter} filterValue={filter}
/> />
)} )}
{!hasData && formatMessage(messages.noDataAvailable)} </Page>
</div>
); );
} }

View File

@ -1,7 +1,7 @@
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
import Link from 'next/link'; import Link from 'next/link';
import { Button, Text, Icon, Icons } from 'react-basics'; import { Button, Text, Icon, Icons } from 'react-basics';
import SettingsTable from 'components/common/SettingsTable'; import SettingsTable from 'components/common/SettingsTable';
import Empty from 'components/common/Empty';
import useMessages from 'hooks/useMessages'; import useMessages from 'hooks/useMessages';
import useConfig from 'hooks/useConfig'; import useConfig from 'hooks/useConfig';
import useUser from 'hooks/useUser'; import useUser from 'hooks/useUser';
@ -15,7 +15,7 @@ export function WebsitesTable({
showTeam, showTeam,
showEditButton, showEditButton,
}) { }) {
const { formatMessage, labels, messages } = useMessages(); const { formatMessage, labels } = useMessages();
const { openExternal } = useConfig(); const { openExternal } = useConfig();
const { user } = useUser(); const { user } = useUser();
@ -82,7 +82,7 @@ export function WebsitesTable({
}} }}
</SettingsTable> </SettingsTable>
)} )}
{!showTable && <EmptyPlaceholder message={formatMessage(messages.noDataAvailable)} />} {!showTable && <Empty />}
</> </>
); );
} }

View File

@ -1,5 +1,5 @@
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
import Page from 'components/layout/Page'; import Page from 'components/layout/Page';
import Empty from 'components/common/Empty';
import ReportsTable from 'components/pages/reports/ReportsTable'; import ReportsTable from 'components/pages/reports/ReportsTable';
import { useMessages, useWebsiteReports } from 'hooks'; import { useMessages, useWebsiteReports } from 'hooks';
import Link from 'next/link'; import Link from 'next/link';
@ -7,7 +7,7 @@ import { Button, Flexbox, Icon, Icons, Text } from 'react-basics';
import WebsiteHeader from './WebsiteHeader'; import WebsiteHeader from './WebsiteHeader';
export function WebsiteReportsPage({ websiteId }) { export function WebsiteReportsPage({ websiteId }) {
const { formatMessage, labels, messages } = useMessages(); const { formatMessage, labels } = useMessages();
const { const {
reports, reports,
error, error,
@ -48,7 +48,7 @@ export function WebsiteReportsPage({ websiteId }) {
filterValue={filter} filterValue={filter}
/> />
)} )}
{!hasData && <EmptyPlaceholder message={formatMessage(messages.noDataAvailable)} />} {!hasData && <Empty />}
</Page> </Page>
); );
} }

View File

@ -185,9 +185,7 @@ function getPageFilters(filters: SearchFilter<any>): [
orderBy: string; orderBy: string;
}, },
] { ] {
const pageSize = filters?.pageSize || 10; const { pageSize = 10, page = 1, orderBy } = filters || {};
const page = filters?.page || 1;
const orderBy = filters?.orderBy;
return [ return [
{ {

View File

@ -37,10 +37,10 @@ export async function getUserByUsername(username: string, options: GetUserOption
} }
export async function getUsers( export async function getUsers(
UserSearchFilter: UserSearchFilter, searchFilter: UserSearchFilter,
options?: { include?: Prisma.UserInclude }, options?: { include?: Prisma.UserInclude },
): Promise<FilterResult<User[]>> { ): Promise<FilterResult<User[]>> {
const { teamId, filter, filterType = USER_FILTER_TYPES.all } = UserSearchFilter; const { teamId, filter, filterType = USER_FILTER_TYPES.all } = searchFilter;
const mode = prisma.getSearchMode(); const mode = prisma.getSearchMode();
const where: Prisma.UserWhereInput = { const where: Prisma.UserWhereInput = {
@ -67,9 +67,10 @@ export async function getUsers(
}, },
}), }),
}; };
const [pageFilters, getParameters] = prisma.getPageFilters({ const [pageFilters, getParameters] = prisma.getPageFilters({
orderBy: 'username', orderBy: 'username',
...UserSearchFilter, ...searchFilter,
}); });
const users = await prisma.client.user const users = await prisma.client.user
@ -82,12 +83,9 @@ export async function getUsers(
...(options?.include && { include: options.include }), ...(options?.include && { include: options.include }),
}) })
.then(a => { .then(a => {
return a.map(a => { return a.map(({ password, ...rest }) => rest);
const { password, ...rest } = a; });
return rest;
});
});
const count = await prisma.client.user.count({ const count = await prisma.client.user.count({
where: { where: {
...where, ...where,