sort by modtime

Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
Hadi
2025-09-29 21:38:40 +02:00
parent 6b0bf83c97
commit 81ff9804bb
2 changed files with 33 additions and 24 deletions

View File

@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import type { Dataleak } from "$src/lib/types"; import type { Dataleak } from "$src/lib/types";
import { Database, Replace, Search } from "@lucide/svelte"; import { Search } from "@lucide/svelte";
import FaviconOrIcon from "../../favicon-or-icon.svelte"; import FaviconOrIcon from "../../favicon-or-icon.svelte";
let { let {
@@ -15,33 +15,41 @@
let page = $state(1); let page = $state(1);
let filter = $state(""); let filter = $state("");
let filteredDataleaks = $state<Dataleak[]>(dataleaks); let filteredDataleaks = $state<Dataleak[]>([]);
let paginatedDataleaks = $state<Dataleak[]>([]); let paginatedDataleaks = $state<Dataleak[]>([]);
let totalPages = $state(0); let totalPages = $state(0);
$effect(() => {   function sortByModTime(arr: Dataleak[]): Dataleak[] {
if (filter.trim() === "") {     return arr.slice().sort((a, b) => {
filteredDataleaks = dataleaks;       return new Date(b.ModTime).getTime() - new Date(a.ModTime).getTime();
} else {     });
const lowerFilter = filter.toLowerCase();   }
filteredDataleaks = dataleaks.filter((item) =>
item.Name.toLowerCase().includes(lowerFilter),
);
}
page = 1;
});
$effect(() => {   $effect(() => {
if (filteredDataleaks) {     const sortedData = sortByModTime(dataleaks);
totalPages = Math.ceil(filteredDataleaks.length / perPage);
const start = (page - 1) * perPage;     if (filter.trim() === "") {
const end = start + perPage;       filteredDataleaks = sortedData;
paginatedDataleaks = filteredDataleaks.slice(start, end);     } else {
if (page > totalPages) {       const lowerFilter = filter.toLowerCase();
page = totalPages > 0 ? totalPages : 1;       filteredDataleaks = sortedData.filter((item) =>
}         item.Name.toLowerCase().includes(lowerFilter),
}       );
});     }
    page = 1;
  });
  $effect(() => {
    if (filteredDataleaks) {
      totalPages = Math.ceil(filteredDataleaks.length / perPage);
      const start = (page - 1) * perPage;
      const end = start + perPage;
      paginatedDataleaks = filteredDataleaks.slice(start, end);
      if (page > totalPages) {
        page = totalPages > 0 ? totalPages : 1;
      }
    }
  });
function getDomain(dataleakName: string) { function getDomain(dataleakName: string) {
const firstPart = dataleakName.split(" ")[0].toLowerCase(); const firstPart = dataleakName.split(" ")[0].toLowerCase();

View File

@@ -81,4 +81,5 @@ export type Dataleak = {
Columns: string[]; Columns: string[];
Length: number; Length: number;
Size: number; Size: number;
ModTime: string;
}; };