Skip to content

Commit ad84dfc

Browse files
committed
#develop fixed typos
1 parent e126245 commit ad84dfc

6 files changed

Lines changed: 39 additions & 60 deletions

File tree

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import { ContentBridge } from '@/lib';
2-
import { type TP2BGetPatterns, type TP2BUpdatedPatterns } from '@/types';
2+
import { type TP2BUpdatedPatterns } from '@/types';
33

4-
export const contentBridge = new ContentBridge<any, TP2BUpdatedPatterns | TP2BGetPatterns>();
4+
export const contentBridge = new ContentBridge<any, TP2BUpdatedPatterns>();
Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,18 @@
1-
import { createState, withPersist, type StorageInterface } from 'feature-state';
1+
import { createState } from 'feature-state';
22
import { storage } from 'wxt/storage';
33
import { type TPattern } from '@/types';
44

55
import { contentBridge } from './content-bridge';
66

7-
const localStorage: StorageInterface<TPattern[]> = {
8-
async load(key) {
9-
return (await storage.getItem<TPattern[]>(`local:${key}`)) ?? [];
10-
},
11-
async save(key, value) {
12-
await storage.setItem(`local:${key}`, value);
13-
return true;
14-
},
15-
async delete(key) {
16-
await storage.removeItem(`local:${key}`);
17-
return true;
18-
}
19-
};
7+
export const $patterns = createState<TPattern[]>([]);
208

21-
export const $patterns = withPersist(createState<TPattern[]>([]), localStorage, 'patterns');
22-
23-
$patterns.persist();
24-
25-
contentBridge.listen('updated-patterns', (payload) => {
26-
$patterns.set(payload.patterns);
9+
loadPatternsFormStorage().catch(() => {
10+
// do nothing
2711
});
2812

29-
contentBridge.listen('get-patterns', () => {
30-
return { patterns: $patterns.get() as TPattern[] };
31-
});
13+
contentBridge.listen('updated-patterns', loadPatternsFormStorage);
14+
15+
async function loadPatternsFormStorage(): Promise<void> {
16+
const patterns = (await storage.getItem<TPattern[]>(`local:patterns`)) ?? [];
17+
$patterns.set(patterns);
18+
}

src/entrypoints/popup/App.tsx

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export const App: React.FC = () => {
2525
raw: string;
2626
error: string | null;
2727
}>({ regex: null, raw: '', error: null });
28-
const [, forceRender] = React.useReducer((s: number) => s + 1, 0);
2928
const [isActive, setIsActive] = React.useState(true);
3029

3130
const handlePatternChange = React.useCallback((e: React.ChangeEvent<HTMLInputElement>): void => {
@@ -43,19 +42,16 @@ export const App: React.FC = () => {
4342
const addPattern = React.useCallback(() => {
4443
if (currentPattern.regex != null) {
4544
$patterns.set([
46-
...patterns,
45+
...$patterns.get(),
4746
{ source: currentPattern.regex.source, flags: currentPattern.regex.flags, isActive: true }
4847
]);
4948
setCurrentPattern({ regex: null, raw: '', error: null });
5049
}
51-
}, [currentPattern, patterns]);
50+
}, [currentPattern]);
5251

53-
const removePattern = React.useCallback(
54-
(index: number) => {
55-
$patterns.set(patterns.filter((_, i) => i !== index));
56-
},
57-
[patterns]
58-
);
52+
const removePattern = React.useCallback((index: number) => {
53+
$patterns.set($patterns.get().filter((_, i) => i !== index));
54+
}, []);
5955

6056
return (
6157
<div className="h-[500px] w-[350px] overflow-y-auto bg-background p-4 text-foreground">
@@ -111,14 +107,13 @@ export const App: React.FC = () => {
111107
pressed={pattern.isActive}
112108
onPressedChange={(pressed) => {
113109
$patterns.set(
114-
patterns.map((p, i) => {
110+
$patterns.get().map((p, i) => {
115111
if (i === index) {
116112
return { ...p, isActive: pressed };
117113
}
118114
return p;
119115
})
120116
);
121-
forceRender();
122117
}}
123118
className="text-blue-500 hover:bg-transparent hover:text-blue-400 data-[state=on]:bg-transparent data-[state=on]:text-gray-500 data-[state=on]:hover:text-gray-400"
124119
>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import { PopupBridge } from '@/lib';
2-
import { type TP2BGetPatterns, type TP2BUpdatedPatterns } from '@/types';
2+
import { type TP2BUpdatedPatterns } from '@/types';
33

4-
export const popupBridge = new PopupBridge<TP2BUpdatedPatterns | TP2BGetPatterns, any>();
4+
export const popupBridge = new PopupBridge<TP2BUpdatedPatterns, any>();

src/entrypoints/popup/store.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,30 @@ import { popupBridge } from './popup-bridge';
66
export const $patterns = withPersist(
77
createState<TPattern[]>([{ source: 'Benno', flags: 'g', isActive: true }]),
88
{
9-
async load() {
10-
const response = await popupBridge.sendMessageToContentOnActiveTab('get-patterns', undefined);
11-
return response?.patterns ?? [];
9+
async load(key) {
10+
return (await storage.getItem<TPattern[]>(`local:${key}`)) ?? [];
1211
},
13-
async save(_, value) {
14-
await popupBridge.sendMessageToContentOnAllTabs('updated-patterns', {
15-
patterns: value
16-
});
12+
async save(key, value) {
13+
await storage.setItem(`local:${key}`, value);
14+
try {
15+
await popupBridge.sendMessageToContentOnAllTabs('updated-patterns', undefined);
16+
} catch (e) {
17+
// do nothing
18+
}
1719
return true;
1820
},
19-
delete() {
20-
// TODO
21+
async delete(key) {
22+
await storage.removeItem(`local:${key}`);
2123
return true;
2224
}
2325
},
2426
'patterns'
2527
);
2628

27-
$patterns.persist();
29+
$patterns.persist().catch(() => {
30+
// do nothing
31+
});
32+
33+
$patterns.listen((value) => {
34+
console.log('Changed', { value });
35+
});

src/types.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
11
import { type TBridgeMessage } from '@/lib';
22

3-
export type TP2BUpdatedPatterns = TBridgeMessage<
4-
'content',
5-
'updated-patterns',
6-
{ patterns: TPattern[] }
7-
>;
8-
9-
export type TP2BGetPatterns = TBridgeMessage<
10-
'content',
11-
'get-patterns',
12-
undefined,
13-
{ patterns: TPattern[] }
14-
>;
3+
export type TP2BUpdatedPatterns = TBridgeMessage<'content', 'updated-patterns'>;
154

165
export interface TPattern {
176
source: string;

0 commit comments

Comments
 (0)