From 717c3e17dfe6002c8fb526396490f6fbf7977bd0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=9B=A8=E5=AE=AE=E8=93=AE?=
<123083837+reyamir@users.noreply.github.com>
Date: Wed, 26 Jun 2024 14:51:50 +0700
Subject: [PATCH] Event Subscriptions (#218)
* feat: improve create column command
* refactor: thread
* feat: add window virtualized to event screen
* chore: update deps
* fix: window decoration
* feat: improve mention ntoe
* feat: add subscription to event screen
---
apps/desktop2/index.html | 22 +-
apps/desktop2/package.json | 24 +-
apps/desktop2/src/app.tsx | 4 +-
apps/desktop2/src/components/column.tsx | 10 +-
.../src/components/note/buttons/reply.tsx | 2 +-
.../src/components/note/buttons/repost.tsx | 4 +-
.../src/components/note/buttons/zap.tsx | 4 +-
.../src/components/note/mentions/note.tsx | 87 +-
.../src/components/note/preview/image.tsx | 2 +-
.../src/components/note/preview/images.tsx | 7 +-
.../src/components/note/preview/videos.tsx | 2 +
apps/desktop2/src/components/text.tsx | 2 +-
apps/desktop2/src/routes/$account.tsx | 12 +-
apps/desktop2/src/routes/__root.tsx | 2 +
apps/desktop2/src/routes/events/$eventId.tsx | 82 --
apps/desktop2/src/routes/events/$id.tsx | 143 ++
.../src/routes/events/-components/child.tsx | 41 +
.../src/routes/events/-components/parent.tsx | 41 +
.../src/routes/events/-components/reply.tsx | 36 -
.../routes/events/-components/subReply.tsx | 26 -
apps/desktop2/src/routes/index.tsx | 6 +-
apps/web/package.json | 4 +-
package.json | 4 +-
packages/icons/package.json | 2 +-
packages/system/package.json | 6 +-
packages/system/src/commands.ts | 1190 +++++++++-------
packages/system/src/event.ts | 128 +-
packages/system/src/window.ts | 10 +-
packages/types/package.json | 2 +-
packages/ui/package.json | 2 +-
packages/utils/package.json | 2 +-
pnpm-lock.yaml | 1263 +++++++----------
src-tauri/Cargo.lock | 553 ++++----
src-tauri/capabilities/main.json | 1 +
src-tauri/gen/schemas/acl-manifests.json | 2 +-
src-tauri/gen/schemas/capabilities.json | 2 +-
src-tauri/gen/schemas/desktop-schema.json | 128 +-
src-tauri/gen/schemas/macOS-schema.json | 128 +-
src-tauri/src/commands/window.rs | 61 +-
src-tauri/src/fns.rs | 3 +-
src-tauri/src/main.rs | 58 +-
src-tauri/src/nostr/event.rs | 78 +-
src-tauri/src/nostr/keys.rs | 456 +++---
src-tauri/src/nostr/utils.rs | 4 +-
src-tauri/tauri.macos.conf.json | 8 +-
45 files changed, 2504 insertions(+), 2150 deletions(-)
delete mode 100644 apps/desktop2/src/routes/events/$eventId.tsx
create mode 100644 apps/desktop2/src/routes/events/$id.tsx
create mode 100644 apps/desktop2/src/routes/events/-components/child.tsx
create mode 100644 apps/desktop2/src/routes/events/-components/parent.tsx
delete mode 100644 apps/desktop2/src/routes/events/-components/reply.tsx
delete mode 100644 apps/desktop2/src/routes/events/-components/subReply.tsx
diff --git a/apps/desktop2/index.html b/apps/desktop2/index.html
index 6bad771c..9251ee5a 100644
--- a/apps/desktop2/index.html
+++ b/apps/desktop2/index.html
@@ -1,14 +1,14 @@
-
-
-
- Lume Desktop
-
-
-
-
-
+
+
+
+ Lume Desktop
+
+
+
+
+
diff --git a/apps/desktop2/package.json b/apps/desktop2/package.json
index 4a8505ec..d6de5b43 100644
--- a/apps/desktop2/package.json
+++ b/apps/desktop2/package.json
@@ -14,16 +14,16 @@
"@lume/system": "workspace:^",
"@lume/ui": "workspace:^",
"@lume/utils": "workspace:^",
- "@radix-ui/react-avatar": "^1.0.4",
- "@radix-ui/react-checkbox": "^1.0.4",
- "@radix-ui/react-popover": "^1.0.7",
+ "@radix-ui/react-avatar": "^1.1.0",
+ "@radix-ui/react-checkbox": "^1.1.0",
+ "@radix-ui/react-popover": "^1.1.1",
"@radix-ui/react-scroll-area": "^1.1.0",
- "@radix-ui/react-switch": "^1.0.3",
- "@radix-ui/react-tabs": "^1.0.4",
- "@radix-ui/react-tooltip": "^1.0.7",
- "@tanstack/query-persist-client-core": "^5.45.0",
- "@tanstack/react-query": "^5.45.0",
- "@tanstack/react-router": "^1.38.1",
+ "@radix-ui/react-switch": "^1.1.0",
+ "@radix-ui/react-tabs": "^1.1.0",
+ "@radix-ui/react-tooltip": "^1.1.1",
+ "@tanstack/query-persist-client-core": "^5.48.0",
+ "@tanstack/react-query": "^5.48.0",
+ "@tanstack/react-router": "^1.40.0",
"embla-carousel-react": "^8.1.5",
"i18next": "^23.11.5",
"i18next-resources-to-backend": "^1.2.1",
@@ -45,15 +45,15 @@
"@lume/tailwindcss": "workspace:^",
"@lume/tsconfig": "workspace:^",
"@lume/types": "workspace:^",
- "@tanstack/router-devtools": "^1.38.1",
- "@tanstack/router-vite-plugin": "^1.38.0",
+ "@tanstack/router-devtools": "^1.40.0",
+ "@tanstack/router-vite-plugin": "^1.39.13",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react-swc": "^3.7.0",
"autoprefixer": "^10.4.19",
"postcss": "^8.4.38",
"tailwindcss": "^3.4.4",
- "typescript": "^5.4.5",
+ "typescript": "^5.5.2",
"vite": "^5.3.1",
"vite-plugin-top-level-await": "^1.4.1",
"vite-tsconfig-paths": "^4.3.2"
diff --git a/apps/desktop2/src/app.tsx b/apps/desktop2/src/app.tsx
index 400421c8..bdd3cbe0 100644
--- a/apps/desktop2/src/app.tsx
+++ b/apps/desktop2/src/app.tsx
@@ -1,15 +1,17 @@
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { RouterProvider, createRouter } from "@tanstack/react-router";
import { StrictMode } from "react";
+import { type } from "@tauri-apps/plugin-os";
import ReactDOM from "react-dom/client";
import { routeTree } from "./router.gen"; // auto generated file
import "./app.css";
// Set up a Router instance
const queryClient = new QueryClient();
+const platform = type();
const router = createRouter({
routeTree,
- context: { queryClient },
+ context: { queryClient, platform },
Wrap: ({ children }) => {
return (
{children}
diff --git a/apps/desktop2/src/components/column.tsx b/apps/desktop2/src/components/column.tsx
index ceef4f65..74a655e7 100644
--- a/apps/desktop2/src/components/column.tsx
+++ b/apps/desktop2/src/components/column.tsx
@@ -60,15 +60,17 @@ export function Column({
const rect = container.current.getBoundingClientRect();
const url = `${column.content}?account=${account}&label=${column.label}&name=${column.name}`;
- // create new webview
- invoke("create_column", {
+ const prop = {
label: webviewLabel,
x: rect.x,
y: rect.y,
width: rect.width,
height: rect.height,
url,
- }).then(() => {
+ };
+
+ // create new webview
+ invoke("create_column", { column: prop }).then(() => {
console.log("created: ", webviewLabel);
setIsCreated(true);
});
@@ -87,7 +89,7 @@ export function Column({
className={cn(
"flex flex-col w-full h-full rounded-xl",
column.label !== "open"
- ? "bg-black/5 dark:bg-white/5 backdrop-blur-sm"
+ ? "bg-black/5 dark:bg-white/10 backdrop-blur"
: "",
)}
>
diff --git a/apps/desktop2/src/components/note/buttons/reply.tsx b/apps/desktop2/src/components/note/buttons/reply.tsx
index 04736e39..96601f5b 100644
--- a/apps/desktop2/src/components/note/buttons/reply.tsx
+++ b/apps/desktop2/src/components/note/buttons/reply.tsx
@@ -17,7 +17,7 @@ export function NoteReply({ large = false }: { large?: boolean }) {
className={cn(
"inline-flex items-center justify-center text-neutral-800 dark:text-neutral-200",
large
- ? "rounded-full bg-neutral-100 dark:bg-white/10 h-7 gap-1.5 w-24 text-sm font-medium hover:text-blue-500 hover:bg-neutral-200 dark:hover:bg-white/20"
+ ? "rounded-full h-7 gap-1.5 w-20 text-sm font-medium hover:bg-black/10 dark:hover:bg-white/10"
: "size-7",
)}
>
diff --git a/apps/desktop2/src/components/note/buttons/repost.tsx b/apps/desktop2/src/components/note/buttons/repost.tsx
index 675d940b..223f7a8e 100644
--- a/apps/desktop2/src/components/note/buttons/repost.tsx
+++ b/apps/desktop2/src/components/note/buttons/repost.tsx
@@ -64,9 +64,9 @@ export function NoteRepost({ large = false }: { large?: boolean }) {
type="button"
onClick={(e) => showContextMenu(e)}
className={cn(
- "inline-flex items-center justify-center text-neutral-800 dark:text-neutral-200 rounded-full",
+ "inline-flex items-center justify-center text-neutral-800 dark:text-neutral-200",
large
- ? "bg-neutral-100 dark:bg-white/10 h-7 gap-1.5 w-24 text-sm font-medium hover:text-blue-500 hover:bg-neutral-200 dark:hover:bg-white/20"
+ ? "rounded-full h-7 gap-1.5 w-24 text-sm font-medium hover:bg-black/10 dark:hover:bg-white/10"
: "size-7",
)}
>
diff --git a/apps/desktop2/src/components/note/buttons/zap.tsx b/apps/desktop2/src/components/note/buttons/zap.tsx
index 37ff6ddf..aea47c10 100644
--- a/apps/desktop2/src/components/note/buttons/zap.tsx
+++ b/apps/desktop2/src/components/note/buttons/zap.tsx
@@ -13,11 +13,11 @@ export function NoteZap({ large = false }: { large?: boolean }) {
return (