From 3b78123939b406570c29ea91a69b13cb03b89e8e Mon Sep 17 00:00:00 2001
From: Ren Amamiya <123083837+reyamir@users.noreply.github.com>
Date: Wed, 1 Mar 2023 21:19:31 +0700
Subject: [PATCH] fixed duplicate connection
---
src/components/connectors/note.tsx | 2 +-
src/components/contexts/database.tsx | 31 ++++++++---------
src/components/navigatorBar/index.tsx | 2 +-
src/components/note/atoms/user.tsx | 1 -
.../note/atoms/userWithUsername.tsx | 33 ++++---------------
src/pages/feed/following.tsx | 12 ++++---
src/pages/index.tsx | 1 -
src/pages/profile/update.tsx | 1 -
8 files changed, 31 insertions(+), 52 deletions(-)
diff --git a/src/components/connectors/note.tsx b/src/components/connectors/note.tsx
index dcbe0f0c..ebe099a4 100644
--- a/src/components/connectors/note.tsx
+++ b/src/components/connectors/note.tsx
@@ -8,7 +8,7 @@ import { useLocalStorage } from '@rehooks/local-storage';
import { memo, useCallback, useContext, useRef } from 'react';
export const NoteConnector = memo(function NoteConnector() {
- const db: any = useContext(DatabaseContext);
+ const { db }: any = useContext(DatabaseContext);
const relayPool: any = useContext(RelayContext);
const now = useRef(new Date());
diff --git a/src/components/contexts/database.tsx b/src/components/contexts/database.tsx
index 45f3032b..84116eeb 100644
--- a/src/components/contexts/database.tsx
+++ b/src/components/contexts/database.tsx
@@ -1,14 +1,14 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { writeStorage } from '@rehooks/local-storage';
-import { createContext, useEffect, useMemo } from 'react';
+import { createContext, useEffect, useState } from 'react';
import Database from 'tauri-plugin-sql-api';
export const DatabaseContext = createContext({});
-const initDB = typeof window !== 'undefined' ? await Database.load('sqlite:lume.db') : null;
+const db = typeof window !== 'undefined' ? await Database.load('sqlite:lume.db') : null;
export default function DatabaseProvider({ children }: { children: React.ReactNode }) {
- const db = useMemo(() => initDB, []);
+ const [done, setDone] = useState(false);
useEffect(() => {
const getRelays = async () => {
@@ -40,17 +40,18 @@ export default function DatabaseProvider({ children }: { children: React.ReactNo
writeStorage('follows', arr);
};
- if (db !== null) {
- getRelays().catch(console.error);
- getAccount()
- .then((res) => {
- if (res) {
- getFollows(res.id).catch(console.error);
- }
- })
- .catch(console.error);
- }
- }, [db]);
+ getRelays().catch(console.error);
+ getAccount()
+ .then((res) => {
+ if (res) {
+ getFollows(res.id).catch(console.error);
+ }
+ setDone(true);
+ })
+ .catch(console.error);
+ }, []);
- return