diff --git a/src/app/[locale]/pages/tracking/page.tsx b/src/app/[locale]/pages/tracking/page.tsx
new file mode 100644
index 0000000..5031a43
--- /dev/null
+++ b/src/app/[locale]/pages/tracking/page.tsx
@@ -0,0 +1,17 @@
+'use server'
+
+import { TrackingStatistic } from '@/app/ui/tracking-page/tracking-statistic';
+import FilesTable from '@/app/ui/dashboard/files-table';
+
+export default async function Page() {
+ const FILE_TYPE = "document";
+
+ return (
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/app/components/tanstak-table/TanstakTable.tsx b/src/app/components/tanstak-table/TanstakTable.tsx
index bcc25d6..694f0d0 100644
--- a/src/app/components/tanstak-table/TanstakTable.tsx
+++ b/src/app/components/tanstak-table/TanstakTable.tsx
@@ -12,7 +12,7 @@ import {
ColumnFiltersState,
PaginationState
} from '@tanstack/react-table';
-import {IconDoubleArrowRight, IconArrowRight, IconDoubleArrowLeft, IconArrowLeft, IconArrowUp, IconArrowDown, IconFilter, IconFileDownload, IconInfo, IconEye, IconCheck, IconImageFile, IconLink} from '@/app/ui/icons/icons';
+import { IconDoubleArrowRight, IconArrowRight, IconDoubleArrowLeft, IconArrowLeft, IconArrowUp, IconArrowDown, IconFilter, IconFileDownload, IconInfo, IconEye, IconCheck, IconImageFile, IconLink } from '@/app/ui/icons/icons';
import { useTranslations, useLocale } from 'next-intl';
import DropDownList from '@/app/components/DropDownList';
import { useQuery, useQueryClient } from '@tanstack/react-query';
@@ -76,7 +76,7 @@ const cutFileExtension = (fileName: string) => {
return extension;
}
-export default function TanstakFilesTable({ fileType }: { fileType: string }) {
+export default function TanstakFilesTable({ fileType, showFileLink }: { fileType: string, showFileLink?: boolean }) {
const [sorting, setSorting] = useState([]);
const [dateFilter, setDateFilter] = useState('month');
@@ -572,7 +572,7 @@ export default function TanstakFilesTable({ fileType }: { fileType: string }) {
>
- {row.original.fileType === 'document' && (
+ {(showFileLink && row.original.fileType === 'document') && (
-
+
)
}
\ No newline at end of file
diff --git a/src/app/ui/icons/icons.tsx b/src/app/ui/icons/icons.tsx
index 0962774..10f3113 100644
--- a/src/app/ui/icons/icons.tsx
+++ b/src/app/ui/icons/icons.tsx
@@ -258,7 +258,7 @@ export function IconFollowToLink() {
export function IconFullScreen() {
return (
-
+
)
}
@@ -266,4 +266,20 @@ export function IconLink() {
return (
)
+}
+
+export function IconPerson() {
+ return (
+
+ )
+}
+
+export function IconGlobe() {
+ return (
+
+ )
}
\ No newline at end of file
diff --git a/src/app/ui/navigation/navigation.json b/src/app/ui/navigation/navigation.json
index 3ac85f9..185aa33 100644
--- a/src/app/ui/navigation/navigation.json
+++ b/src/app/ui/navigation/navigation.json
@@ -14,6 +14,11 @@
"href": "/pages/my-content",
"img": "M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 0 0-5.5-1.65l-.5.67-.5-.68C10.96 2.54 10 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"
},
+ {
+ "name": "tracking",
+ "href": "/pages/tracking",
+ "img": "M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"
+ },
{
"name": "referral-program",
"href": "/pages/refferals",
diff --git a/src/app/ui/tracking-page/tracking-statistic.tsx b/src/app/ui/tracking-page/tracking-statistic.tsx
new file mode 100644
index 0000000..11096d2
--- /dev/null
+++ b/src/app/ui/tracking-page/tracking-statistic.tsx
@@ -0,0 +1,76 @@
+import { IconLink, IconDocument, IconCheck, IconPerson, IconGlobe } from '@/app/ui/icons/icons';
+export function TrackingStatistic() {
+ return (
+
+
+
+
+ PDF Трекинг
+
+
+
+ Аналитика открытий защищённых PDF документов
+
+
+
+
+
+
+
+
+
+ 33
+
+
+ Документов
+
+
+
+
+
+
+ 103
+
+
+ Открытий
+
+
+
+
+
+
+
+ 247
+
+
+ Верификаций
+
+
+
+
+
+
+
+ 27
+
+
+ Уникальных IP
+
+
+
+
+
+
+
+ 7
+
+
+ Стран
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json
index 76619a0..0d29832 100644
--- a/src/i18n/messages/en.json
+++ b/src/i18n/messages/en.json
@@ -188,7 +188,8 @@
"table-description": "Table of all files",
"protected-image": "Protected images",
"protected-video": "Protected videos",
- "protected-audio": "Protected audio",
+ "protected-audio": "Protected audios",
+ "protected-document": "Protected documents",
"image-protected": "Images Protected",
"video-protected": "Videos Protected",
"audio-protected": "Audios Protected",
@@ -449,7 +450,8 @@
"recent-cases": "Recent cases",
"select-at-least-one-filter": "Select at least one filter",
"select-document-to-upload": "Select document(s) to upload",
- "uploading-id-images": "Uploading ID images"
+ "uploading-id-images": "Uploading ID images",
+ "tracking": "Tracking"
},
"Login-register-form": {
"and": "and",
diff --git a/src/i18n/messages/ru.json b/src/i18n/messages/ru.json
index ec8b534..dc3965e 100644
--- a/src/i18n/messages/ru.json
+++ b/src/i18n/messages/ru.json
@@ -189,6 +189,7 @@
"protected-image": "Защищенные изображения",
"protected-video": "Защищенные видео",
"protected-audio": "Защищенные аудио",
+ "protected-document": "Защищенные документы",
"image-protected": "Изображений защищено",
"video-protected": "Видео защищено",
"audio-protected": "Аудио защищено",
@@ -449,7 +450,8 @@
"recent-cases": "Недавние дела",
"select-at-least-one-filter": "Выберите хотя бы один фильтр",
"select-document-to-upload": "Выберите документ(ы) для загрузки",
- "uploading-id-images": "Загрузка изображений удостоверения личности"
+ "uploading-id-images": "Загрузка изображений удостоверения личности",
+ "tracking": "Отслеживание"
},
"Login-register-form": {
"and": "и",