Skip to content

Commit

Permalink
feat: add currentId, sync state
Browse files Browse the repository at this point in the history
  • Loading branch information
jgjgill committed Aug 27, 2024
1 parent da6c6cf commit d431fc6
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 9 deletions.
1 change: 1 addition & 0 deletions src/background.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {});
3 changes: 2 additions & 1 deletion src/content.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
window.addEventListener("sendToExtension", ((event: CustomEvent) => {
const data = event.detail;
chrome.storage.local.set({ "overlay-kit": data });
chrome.runtime.sendMessage({ type: "SYNC_STATE" });
}) as EventListener);

chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
Expand All @@ -12,5 +13,5 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
});

window.addEventListener("beforeunload", function () {
chrome.storage.local.set({ "overlay-kit": [] });
chrome.storage.local.remove("overlay-kit");
});
24 changes: 16 additions & 8 deletions src/pop-up/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,34 @@ export type OverlayItem = {

export default function App() {
const [overlayList, setOverlayList] = useState<OverlayItem[] | null>(null);
const [currentId, setCurrentId] = useState();

useEffect(() => {
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
chrome.storage.local.get("overlay-kit", (result) => {
setOverlayList(result["overlay-kit"]["overlayList"]);
setCurrentId(result["overlay-kit"]["currentId"]);
});
});

chrome.storage.local.get("overlay-kit", (result) => {
setOverlayList(result["overlay-kit"]);
setOverlayList(result["overlay-kit"]["overlayList"]);
setCurrentId(result["overlay-kit"]["currentId"]);
});
}, []);

const isExistOverlayList = overlayList !== null && overlayList.length !== 0;
const isexistOverlayData = isExistOverlayList || currentId;

return (
<h1>
{!isExistOverlayList && <span>Hello world!</span>}
<div>
{!isexistOverlayData && <span>Hello world!</span>}
{currentId && <span>currentId: {currentId}</span>}
{isExistOverlayList &&
overlayList.map((item) => (
<button
key={item.id}
style={{ borderColor: item.id === currentId ? "blue" : "" }}
onClick={async () => {
const tab = await getCurrentTab();

Expand All @@ -35,15 +47,11 @@ export default function App() {
data: item.id,
});
}

setOverlayList((prev) =>
prev ? prev.filter((prevItem) => prevItem.id !== item.id) : null
);
}}>
<div>{item.id}</div>
<div>{item.isOpen}</div>
</button>
))}
</h1>
</div>
);
}

0 comments on commit d431fc6

Please sign in to comment.