This commit is contained in:
reya 2023-11-26 07:21:24 +07:00
parent 9112c1c24a
commit 7759851541
8 changed files with 23 additions and 22 deletions

View File

@ -13,21 +13,13 @@ export function FollowList() {
queryKey: ['follows'],
queryFn: async () => {
const user = ndk.getUser({ pubkey: db.account.pubkey });
const follows = await user.follows();
const followsAsArr = [];
follows.forEach((user) => {
followsAsArr.push(user.pubkey);
});
const follows = [...(await user.follows())].map((user) => user.pubkey);
// update db
await db.updateAccount('follows', JSON.stringify(followsAsArr));
await db.updateAccount('circles', JSON.stringify(followsAsArr));
await db.updateAccount('follows', JSON.stringify(follows));
db.account.follows = follows;
db.account.follows = followsAsArr;
db.account.circles = followsAsArr;
return followsAsArr;
return follows;
},
refetchOnWindowFocus: false,
});

View File

@ -451,7 +451,7 @@ export class LumeStorage {
}
public async createSetting(key: string, value: string) {
const currentSetting = await this.getSettingValue(key);
const currentSetting = await this.checkSettingValue(key);
if (!currentSetting)
return await this.db.execute(
@ -475,6 +475,15 @@ export class LumeStorage {
return results;
}
public async checkSettingValue(key: string) {
const results: { key: string; value: string }[] = await this.db.select(
'SELECT * FROM settings WHERE key = $1 ORDER BY id DESC LIMIT 1;',
[key]
);
if (!results.length) return false;
return results[0].value;
}
public async getSettingValue(key: string) {
const results: { key: string; value: string }[] = await this.db.select(
'SELECT * FROM settings WHERE key = $1 ORDER BY id DESC LIMIT 1;',

View File

@ -33,13 +33,13 @@ export function TitleBar({
<div className="col-span-1 flex justify-center">
{id === '9999' ? (
<div className="isolate flex -space-x-2">
{db.account.circles
{db.account.follows
?.slice(0, 8)
.map((item) => <User key={item} pubkey={item} variant="ministacked" />)}
{db.account.circles?.length > 8 ? (
{db.account.follows?.length > 8 ? (
<div className="inline-flex h-6 w-6 items-center justify-center rounded-full bg-neutral-300 text-neutral-900 ring-1 ring-white dark:bg-neutral-700 dark:text-neutral-100 dark:ring-black">
<span className="text-[8px] font-medium">
+{db.account.circles?.length - 8}
+{db.account.follows?.length - 8}
</span>
</div>
) : null}

View File

@ -40,7 +40,7 @@ export function ArticleWidget({ widget }: { widget: Widget }) {
} else {
filter = {
kinds: [NDKKind.Article],
authors: db.account.circles,
authors: db.account.follows,
};
}

View File

@ -40,7 +40,7 @@ export function FileWidget({ widget }: { widget: Widget }) {
} else {
filter = {
kinds: [1063],
authors: db.account.circles,
authors: db.account.follows,
};
}

View File

@ -39,7 +39,7 @@ export function NewsfeedWidget() {
relayUrls,
{
kinds: [NDKKind.Text, NDKKind.Repost],
authors: db.account.circles,
authors: db.account.follows,
},
FETCH_LIMIT,
{ asOf: pageParam === 0 ? undefined : pageParam, abortSignal: signal }

View File

@ -96,7 +96,7 @@ export function AddGroupFeeds({ currentWidgetId }: { currentWidgetId: string })
Users
</span>
<div className="flex h-[420px] flex-col overflow-y-auto rounded-xl bg-neutral-100 py-2 dark:bg-neutral-900">
{db.account.circles.map((item: string) => (
{db.account.follows.map((item: string) => (
<button
key={item}
type="button"

View File

@ -30,12 +30,12 @@ export function LiveUpdater({ status }: { status: QueryStatus }) {
useEffect(() => {
let sub: NDKSubscription = undefined;
if (status === 'success' && db.account && db.account.circles.length > 0) {
if (status === 'success' && db.account && db.account.follows.length > 0) {
queryClient.fetchQuery({ queryKey: ['notification'] });
const filter: NDKFilter = {
kinds: [NDKKind.Text, NDKKind.Repost],
authors: db.account.circles,
authors: db.account.follows,
since: Math.floor(Date.now() / 1000),
};