-
#{tag}
-
- {pubkeys.slice(0, 5).map(a =>
)}
- {pubkeys.length > 5 &&
- +
- }
+ return (
+
+
+
#{tag}
+
+ {pubkeys.slice(0, 5).map(a => (
+
+ ))}
+ {pubkeys.length > 5 && (
+
+ +
+
+ )}
+
+ {isFollowing ? (
+
followTags(login.tags.item.filter(t => t !== tag))}>
+
+
+ ) : (
+
followTags(login.tags.item.concat([tag]))}>
+
+
+ )}
- {isFollowing ? (
-
followTags(login.tags.item.filter(t => t !== tag))}>
-
-
- ) : (
-
followTags(login.tags.item.concat([tag]))}>
-
-
- )}
-
-}
\ No newline at end of file
+ );
+}
diff --git a/packages/app/src/Pages/Profile/ProfilePage.tsx b/packages/app/src/Pages/Profile/ProfilePage.tsx
index 8c427ef7..cc2c2fc3 100644
--- a/packages/app/src/Pages/Profile/ProfilePage.tsx
+++ b/packages/app/src/Pages/Profile/ProfilePage.tsx
@@ -89,8 +89,8 @@ export default function ProfilePage({ id: propId, state }: ProfilePageProps) {
// ignored
}
})();
- const showBadges = login.preferences.showBadges ?? false;
- const showStatus = login.preferences.showStatus ?? true;
+ const showBadges = login.appData.item.preferences.showBadges ?? false;
+ const showStatus = login.appData.item.preferences.showStatus ?? true;
// feeds
const { blocked } = useModeration();
diff --git a/packages/app/src/Pages/Root.tsx b/packages/app/src/Pages/Root.tsx
index 4491cec6..b9afdb10 100644
--- a/packages/app/src/Pages/Root.tsx
+++ b/packages/app/src/Pages/Root.tsx
@@ -181,7 +181,10 @@ export const TagsTab = (params: { tag?: string }) => {
};
const DefaultTab = () => {
- const { preferences, publicKey } = useLogin();
+ const { preferences, publicKey } = useLogin(s => ({
+ preferences: s.appData.item.preferences,
+ publicKey: s.publicKey,
+ }));
const tab = publicKey ? preferences.defaultRootTab ?? `notes` : `trending/notes`;
const elm = RootTabRoutes.find(a => a.path === tab)?.element;
return elm;
diff --git a/packages/app/src/Pages/ZapPool.tsx b/packages/app/src/Pages/ZapPool.tsx
index d2f3ae32..84bf4a2a 100644
--- a/packages/app/src/Pages/ZapPool.tsx
+++ b/packages/app/src/Pages/ZapPool.tsx
@@ -34,7 +34,7 @@ function ZapTarget({ target }: { target: ZapPoolRecipient }) {
const login = useLogin();
const profile = useUserProfile(target.pubkey);
const hasAddress = profile?.lud16 || profile?.lud06;
- const defaultZapMount = Math.ceil(login.preferences.defaultZapAmount * (target.split / 100));
+ const defaultZapMount = Math.ceil(login.appData.item.preferences.defaultZapAmount * (target.split / 100));
return (
-
+
),
}}
@@ -119,12 +119,14 @@ export default function ZapPoolPage() {
values={{
nIn: (
-
+
),
nOut: (
-
+
),
}}
diff --git a/packages/app/src/Pages/settings/Moderation.tsx b/packages/app/src/Pages/settings/Moderation.tsx
index 4a320213..973c8015 100644
--- a/packages/app/src/Pages/settings/Moderation.tsx
+++ b/packages/app/src/Pages/settings/Moderation.tsx
@@ -1,6 +1,6 @@
import { unixNowMs } from "@snort/shared";
import useLogin from "Hooks/useLogin";
-import { setAppData } from "Login";
+import { updateAppData } from "Login";
import { appendDedupe } from "SnortUtils";
import { useState } from "react";
import { FormattedMessage } from "react-intl";
@@ -10,32 +10,24 @@ export function ModerationSettings() {
const [muteWord, setMuteWord] = useState("");
function addMutedWord() {
- login.appData ??= {
+ updateAppData(login.id, ad => ({
item: {
- mutedWords: [],
- },
- timestamp: 0,
- };
- setAppData(
- login,
- {
- ...login.appData.item,
+ ...ad,
mutedWords: appendDedupe(login.appData.item.mutedWords, [muteWord]),
},
- unixNowMs(),
- );
+ timestamp: unixNowMs(),
+ }));
setMuteWord("");
}
function removeMutedWord(word: string) {
- setAppData(
- login,
- {
- ...login.appData.item,
+ updateAppData(login.id, ad => ({
+ item: {
+ ...ad,
mutedWords: login.appData.item.mutedWords.filter(a => a !== word),
},
- unixNowMs(),
- );
+ timestamp: unixNowMs(),
+ }));
setMuteWord("");
}
diff --git a/packages/app/src/Pages/settings/Preferences.tsx b/packages/app/src/Pages/settings/Preferences.tsx
index b2ffbedb..4fe243f9 100644
--- a/packages/app/src/Pages/settings/Preferences.tsx
+++ b/packages/app/src/Pages/settings/Preferences.tsx
@@ -35,8 +35,7 @@ export const AllLanguageCodes = [
const PreferencesPage = () => {
const { formatMessage } = useIntl();
- const login = useLogin();
- const perf = login.preferences;
+ const { id, perf } = useLogin(s => ({ id: s.id, perf: s.appData.item.preferences }));
const { lang } = useLocale();
return (
@@ -53,7 +52,7 @@ const PreferencesPage = () => {