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-explicit-any": "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": {
"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 { useState } from 'react';
import {
@ -36,7 +36,7 @@ export function SettingsTable({
return (
<>
{showSearch && (
{showSearch && !!value.length && (
<SearchField
onChange={handleFilterChange}
delay={1000}
@ -47,7 +47,7 @@ export function SettingsTable({
/>
)}
{value.length === 0 && filterValue && (
<EmptyPlaceholder message={formatMessage(messages.noResultsFound)}></EmptyPlaceholder>
<Empty message={formatMessage(messages.noResultsFound)} />
)}
{value.length > 0 && (
<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 reports = [
@ -56,7 +56,7 @@ export function ReportTemplates() {
return (
<Page>
<PageHeader title={formatMessage(labels.reports)} />
{showHeader && <PageHeader title={formatMessage(labels.reports)} />}
<div className={styles.reports}>
{reports.map(({ title, description, url, icon }) => {
return (

View File

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

View File

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

View File

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

View File

@ -1,7 +1,7 @@
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
import Link from 'next/link';
import { Button, Text, Icon, Icons } from 'react-basics';
import SettingsTable from 'components/common/SettingsTable';
import Empty from 'components/common/Empty';
import useMessages from 'hooks/useMessages';
import useConfig from 'hooks/useConfig';
import useUser from 'hooks/useUser';
@ -15,7 +15,7 @@ export function WebsitesTable({
showTeam,
showEditButton,
}) {
const { formatMessage, labels, messages } = useMessages();
const { formatMessage, labels } = useMessages();
const { openExternal } = useConfig();
const { user } = useUser();
@ -82,7 +82,7 @@ export function WebsitesTable({
}}
</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 Empty from 'components/common/Empty';
import ReportsTable from 'components/pages/reports/ReportsTable';
import { useMessages, useWebsiteReports } from 'hooks';
import Link from 'next/link';
@ -7,7 +7,7 @@ import { Button, Flexbox, Icon, Icons, Text } from 'react-basics';
import WebsiteHeader from './WebsiteHeader';
export function WebsiteReportsPage({ websiteId }) {
const { formatMessage, labels, messages } = useMessages();
const { formatMessage, labels } = useMessages();
const {
reports,
error,
@ -48,7 +48,7 @@ export function WebsiteReportsPage({ websiteId }) {
filterValue={filter}
/>
)}
{!hasData && <EmptyPlaceholder message={formatMessage(messages.noDataAvailable)} />}
{!hasData && <Empty />}
</Page>
);
}

View File

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

View File

@ -37,10 +37,10 @@ export async function getUserByUsername(username: string, options: GetUserOption
}
export async function getUsers(
UserSearchFilter: UserSearchFilter,
searchFilter: UserSearchFilter,
options?: { include?: Prisma.UserInclude },
): 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 where: Prisma.UserWhereInput = {
@ -67,9 +67,10 @@ export async function getUsers(
},
}),
};
const [pageFilters, getParameters] = prisma.getPageFilters({
orderBy: 'username',
...UserSearchFilter,
...searchFilter,
});
const users = await prisma.client.user
@ -82,12 +83,9 @@ export async function getUsers(
...(options?.include && { include: options.include }),
})
.then(a => {
return a.map(a => {
const { password, ...rest } = a;
return rest;
});
return a.map(({ password, ...rest }) => rest);
});
const count = await prisma.client.user.count({
where: {
...where,