feat: add built-in backup decryption
This commit is contained in:
parent
df218b9a56
commit
bd951310d1
17 changed files with 641 additions and 437 deletions
|
@ -1,48 +1,70 @@
|
|||
import { type Component, createResource, Show } from "solid-js";
|
||||
import type { RouteSectionProps } from "@solidjs/router";
|
||||
import { type Component, createResource, Show } from "solid-js";
|
||||
|
||||
import { allThreadsOverviewQuery, overallSentMessagesQuery } from "~/db-queries";
|
||||
import {
|
||||
allThreadsOverviewQuery,
|
||||
overallSentMessagesQuery,
|
||||
} from "~/db-queries";
|
||||
|
||||
import { OverviewTable, type RoomOverview } from "./overview-table";
|
||||
import { getNameFromRecipient } from "~/lib/get-name-from-recipient";
|
||||
import { Title } from "@solidjs/meta";
|
||||
import { SELF_ID } from "~/db";
|
||||
import { getNameFromRecipient } from "~/lib/get-name-from-recipient";
|
||||
import { OverviewTable, type RoomOverview } from "./overview-table";
|
||||
|
||||
export const Overview: Component<RouteSectionProps> = () => {
|
||||
const [allSelfSentMessagesCount] = createResource(() => overallSentMessagesQuery(SELF_ID));
|
||||
console.log(overallSentMessagesQuery(SELF_ID));
|
||||
|
||||
const [roomOverview] = createResource<RoomOverview[] | undefined>(async () => {
|
||||
return (await allThreadsOverviewQuery())?.map((row) => {
|
||||
const isGroup = row.title !== null;
|
||||
const [allSelfSentMessagesCount] = createResource(() =>
|
||||
overallSentMessagesQuery(SELF_ID),
|
||||
);
|
||||
|
||||
let name = "";
|
||||
const [roomOverview] = createResource<RoomOverview[] | undefined>(
|
||||
async () => {
|
||||
return (await allThreadsOverviewQuery())?.map((row) => {
|
||||
const isGroup = row.title !== null;
|
||||
|
||||
if (row.title !== null) {
|
||||
name = row.title;
|
||||
} else {
|
||||
name = getNameFromRecipient(row.nickname_joined_name, row.system_joined_name, row.profile_joined_name);
|
||||
}
|
||||
let name = "";
|
||||
|
||||
return {
|
||||
threadId: row.thread_id,
|
||||
recipientId: row.recipient_id,
|
||||
archived: Boolean(row.archived),
|
||||
messageCount: row.message_count,
|
||||
lastMessageDate: row.last_message_date ? new Date(row.last_message_date) : undefined,
|
||||
name,
|
||||
isGroup,
|
||||
};
|
||||
});
|
||||
});
|
||||
if (row.title !== null) {
|
||||
name = row.title;
|
||||
} else {
|
||||
name = getNameFromRecipient(
|
||||
row.nickname_joined_name,
|
||||
row.system_joined_name,
|
||||
row.profile_joined_name,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
threadId: row.thread_id,
|
||||
recipientId: row.recipient_id,
|
||||
archived: Boolean(row.archived),
|
||||
messageCount: row.message_count,
|
||||
lastMessageDate: row.last_message_date
|
||||
? new Date(row.last_message_date)
|
||||
: undefined,
|
||||
name,
|
||||
isGroup,
|
||||
};
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
return (
|
||||
<>
|
||||
<Title>Signal statistics overview</Title>
|
||||
|
||||
<div>
|
||||
<p>All messages: {allSelfSentMessagesCount()?.messageCount as number}</p>
|
||||
<Show when={!roomOverview.loading && roomOverview()} fallback="Loading...">
|
||||
{(currentRoomOverview) => <OverviewTable data={currentRoomOverview()} />}
|
||||
<p>
|
||||
All messages: {allSelfSentMessagesCount()?.messageCount as number}
|
||||
</p>
|
||||
<Show
|
||||
when={!roomOverview.loading && roomOverview()}
|
||||
fallback="Loading..."
|
||||
>
|
||||
{(currentRoomOverview) => (
|
||||
<OverviewTable data={currentRoomOverview()} />
|
||||
)}
|
||||
</Show>
|
||||
</div>
|
||||
</>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue