[fix] use plasmohq/storage

This commit is contained in:
kawamataryo
2024-11-06 19:15:08 +09:00
parent aeec876d2b
commit 9be889413c
6 changed files with 42 additions and 52 deletions

View File

@@ -1,3 +1,5 @@
import { useStorage } from "@plasmohq/storage/hook";
import { Storage } from "@plasmohq/storage";
import React from "react";
import { BskyServiceWorkerClient } from "~lib/bskyServiceWorkerClient";
import {
@@ -9,13 +11,15 @@ import {
import { wait } from "~lib/utils";
import type { BskyUser, MatchType } from "~types";
export const useBskyUserManager = ({
users,
setUsers,
}: {
users: BskyUser[];
setUsers: React.Dispatch<React.SetStateAction<BskyUser[]>>;
}) => {
export const useBskyUserManager = () => {
const [users, setUsers] = useStorage<BskyUser[]>({
key: STORAGE_KEYS.DETECTED_BSKY_USERS,
instance: new Storage({
area: "local",
}),
},
(v) => (v === undefined ? [] : v)
);
const bskyClient = React.useRef<BskyServiceWorkerClient | null>(null);
const [actionMode, setActionMode] = React.useState<
(typeof ACTION_MODE)[keyof typeof ACTION_MODE]
@@ -40,7 +44,7 @@ export const useBskyUserManager = ({
const result = await bskyClient.current.follow(user.did);
resultUri = result.uri;
}
setUsers((prev) =>
await setUsers((prev) =>
prev.map((prevUser) => {
if (prevUser.did === user.did) {
return {
@@ -62,7 +66,7 @@ export const useBskyUserManager = ({
const result = await bskyClient.current.block(user.did);
resultUri = result.uri;
}
setUsers((prev) =>
await setUsers((prev) =>
prev.map((prevUser) => {
if (prevUser.did === user.did) {
return {
@@ -125,7 +129,7 @@ export const useBskyUserManager = ({
}
const result = await bskyClient.current.follow(user.did);
resultUri = result.uri;
setUsers((prev) =>
await setUsers((prev) =>
prev.map((prevUser) => {
if (prevUser.did === user.did) {
return {
@@ -149,7 +153,7 @@ export const useBskyUserManager = ({
const result = await bskyClient.current.block(user.did);
resultUri = result.uri;
}
setUsers((prev) =>
await setUsers((prev) =>
prev.map((prevUser) => {
if (prevUser.did === user.did) {
return {
@@ -175,7 +179,7 @@ export const useBskyUserManager = ({
bskyClient.current = new BskyServiceWorkerClient(session);
setActionMode(
MESSAGE_NAME_TO_ACTION_MODE_MAP[
result[STORAGE_KEYS.BSKY_MESSAGE_NAME]
result[STORAGE_KEYS.BSKY_MESSAGE_NAME]
],
);
},

View File

@@ -1,4 +1,6 @@
import type { AtpSessionData } from "@atproto/api";
import { useStorage } from "@plasmohq/storage/hook";
import { Storage } from "@plasmohq/storage";
import React from "react";
import { BskyServiceWorkerClient } from "~lib/bskyServiceWorkerClient";
import {
@@ -39,7 +41,14 @@ export const useRetrieveBskyUsers = () => {
const [detectedXUsers, setDetectedXUsers] = React.useState<
ReturnType<typeof detectXUsers>
>([]);
const [users, setUsers] = React.useState<BskyUser[]>([]);
const [users, setUsers] = useStorage<BskyUser[]>({
key: STORAGE_KEYS.DETECTED_BSKY_USERS,
instance: new Storage({
area: "local",
})
},
(v) => (v === undefined ? [] : v)
);
const [loading, setLoading] = React.useState(true);
const [errorMessage, setErrorMessage] = React.useState("");
const [isBottomReached, setIsBottomReached] = React.useState(false);
@@ -62,7 +71,7 @@ export const useRetrieveBskyUsers = () => {
userData,
});
if (searchResult) {
setUsers((prev) => {
await setUsers((prev) => {
if (prev.some((u) => u.did === searchResult.bskyProfile.did)) {
return prev;
}
@@ -85,7 +94,7 @@ export const useRetrieveBskyUsers = () => {
}
}
},
[],
[setUsers],
);
const abortControllerRef = React.useRef<AbortController | null>(null);
@@ -170,6 +179,7 @@ export const useRetrieveBskyUsers = () => {
},
);
setLoading(true);
await setUsers([]);
showModal();
}, []);