mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-14 21:10:34 +01:00
Code cleanup.
This commit is contained in:
parent
21cdb06571
commit
7d5a24044a
@ -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"
|
||||||
|
@ -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}>
|
||||||
|
@ -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 (
|
||||||
|
@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -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>
|
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
@ -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>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 />}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -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 [
|
||||||
{
|
{
|
||||||
|
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user