{data && !error && limit && (
diff --git a/src/components/pages/realtime/RealtimeCountries.js b/src/components/pages/realtime/RealtimeCountries.js
index 3aecad5f..7a61651a 100644
--- a/src/components/pages/realtime/RealtimeCountries.js
+++ b/src/components/pages/realtime/RealtimeCountries.js
@@ -1,6 +1,6 @@
import { useCallback } from 'react';
import { useRouter } from 'next/router';
-import DataTable from 'components/metrics/DataTable';
+import ListTable from 'components/metrics/ListTable';
import useLocale from 'components/hooks/useLocale';
import useCountryNames from 'components/hooks/useCountryNames';
import useMessages from 'components/hooks/useMessages';
@@ -24,7 +24,7 @@ export function RealtimeCountries({ data }) {
);
return (
-
{filter === FILTER_REFERRERS && (
-
)}
{filter === FILTER_PAGES && (
-
get(`/users/${user?.id}/websites`, {
- filter,
- page,
- pageSize,
includeTeams,
onlyTeams,
+ ...params,
}),
{ enabled: !!user },
);
const { showToast } = useToasts();
+ const handleChange = params => {
+ setParams(params);
+ };
+
const handleSave = async () => {
await refetch();
showToast({ message: formatMessage(messages.saved), variant: 'success' });
@@ -67,10 +66,7 @@ export function WebsitesList({
data={data}
showTeam={showTeam}
showEditButton={showEditButton}
- onFilterChange={handleFilterChange}
- onPageChange={handlePageChange}
- onPageSizeChange={handlePageSizeChange}
- filterValue={filter}
+ onChange={handleChange}
/>
);
diff --git a/src/components/pages/settings/websites/WebsitesTable.js b/src/components/pages/settings/websites/WebsitesTable.js
index 7fa50716..e2e2abbe 100644
--- a/src/components/pages/settings/websites/WebsitesTable.js
+++ b/src/components/pages/settings/websites/WebsitesTable.js
@@ -1,11 +1,78 @@
import Link from 'next/link';
-import { Button, Text, Icon, Icons } from 'react-basics';
+import { Button, Text, Icon, Icons, GridTable, GridColumn } from 'react-basics';
import SettingsTable from 'components/common/SettingsTable';
import Empty from 'components/common/Empty';
import useMessages from 'components/hooks/useMessages';
import useUser from 'components/hooks/useUser';
+import DataTable, { DataTableStyles } from 'components/common/DataTable';
export function WebsitesTable({
+ data = [],
+ filterValue,
+ showTeam,
+ showEditButton,
+ openExternal = false,
+ onChange,
+}) {
+ const { formatMessage, labels } = useMessages();
+ const { user } = useUser();
+
+ const showTable = data && (filterValue || data?.data?.length !== 0);
+
+ return (
+
+ {showTable && (
+
+
+
+ {showTeam && (
+
+ {row => row.teamWebsite[0]?.team.name}
+
+ )}
+ {showTeam && (
+
+ {row => row.user.username}
+
+ )}
+
+ {row => {
+ const {
+ id,
+ user: { id: ownerId },
+ } = row;
+
+ return (
+ <>
+ {showEditButton && (!showTeam || ownerId === user.id) && (
+
+
+
+ )}
+
+
+
+ >
+ );
+ }}
+
+
+ )}
+
+ );
+}
+
+export function WebsitesTable2({
data = [],
filterValue,
onFilterChange,
diff --git a/src/components/pages/websites/WebsitesPage.js b/src/components/pages/websites/WebsitesPage.js
index 2eb060d3..a83d13d5 100644
--- a/src/components/pages/websites/WebsitesPage.js
+++ b/src/components/pages/websites/WebsitesPage.js
@@ -19,16 +19,19 @@ import {
useToasts,
} from 'react-basics';
+const TABS = {
+ myWebsites: 'my-websites',
+ teamWebsites: 'team-websites',
+};
+
export function WebsitesPage() {
const { formatMessage, labels, messages } = useMessages();
- const [tab, setTab] = useState('my-websites');
- const [fetch, setFetch] = useState(1);
+ const [tab, setTab] = useState(TABS.myWebsites);
const { user } = useUser();
const { cloudMode } = useConfig();
const { showToast } = useToasts();
- const handleSave = async () => {
- setFetch(fetch + 1);
+ const handleSave = () => {
showToast({ message: formatMessage(messages.saved), variant: 'success' });
};
@@ -54,18 +57,16 @@ export function WebsitesPage() {
{!cloudMode && addButton}
- - {formatMessage(labels.myWebsites)}
- - {formatMessage(labels.teamWebsites)}
+ - {formatMessage(labels.myWebsites)}
+ - {formatMessage(labels.teamWebsites)}
-
- {tab === 'my-websites' && (
+ {tab === TABS.myWebsites && (
)}
- {tab === 'team-webaites' && (
+ {tab === TABS.teamWebsites && (
diff --git a/yarn.lock b/yarn.lock
index c20730f3..e824ca90 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7642,10 +7642,10 @@ rc@^1.2.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-react-basics@^0.98.0:
- version "0.98.0"
- resolved "https://registry.yarnpkg.com/react-basics/-/react-basics-0.98.0.tgz#b207bedbd9dac749d28ea6de2197a0efe648b78c"
- integrity sha512-ebUigu+s6Iusq14EZTFTTUzdDPYFQEZjeD4feeq3o7dE+ndOVnajEdQ2va/x6CsRBUsWgjLJipfQi0XIrxYupA==
+react-basics@^0.100.0:
+ version "0.100.0"
+ resolved "https://registry.yarnpkg.com/react-basics/-/react-basics-0.100.0.tgz#14a36769af89f3e01641997f897e4073f16f5035"
+ integrity sha512-ET6DX/FYAcjGRauBE4jwqwVpd/hKmA2Nu/fi1dakwsv17hkyV5FEAhdWhQAxJX3VnaCH//QysN8+ae12KuNA9g==
dependencies:
classnames "^2.3.1"
date-fns "^2.29.3"