sort by modtime
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -81,4 +81,5 @@ export type Dataleak = {
|
|||||||
Columns: string[];
|
Columns: string[];
|
||||||
Length: number;
|
Length: number;
|
||||||
Size: number;
|
Size: number;
|
||||||
|
ModTime: string;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user