its for when you want to get like notifications for your reposts

feat(extension): add badge

ptr.pet 25bebc62 7c0c486f

verified
Changed files
+9 -4
extension
entrypoints
types
+7 -3
extension/entrypoints/background.ts
···
export default defineBackground({
persistent: true,
main: async () => {
+
browser.action.setBadgeBackgroundColor({ color: "#0886FE" });
+
browser.action.setBadgeTextColor({ color: "#FFFFFF" });
+
onMessage("connectService", connect);
onMessage("disconnectService", disconnect);
onMessage("connectionStatus", () => {
···
onMessage("items", () => {
return items;
});
-
onMessage("setItems", ({ data }) => {
-
items = data;
+
onMessage("clearItems", () => {
+
items = [];
+
browser.action.setBadgeText({ text: "" });
});
// connect on service start once
···
serviceDomain,
pushNotification: (item) => {
items = [item, ...items];
+
browser.action.setBadgeText({ text: items.length.toString() });
sendMessage("setItems", items, "popup");
},
setConnectionStatus,
setError,
doRetry: () => {
-
console.log("ws", websocket, " status ", connectionStatus);
if (websocket !== null && connectionStatus === "error") {
const b = reconnectBackoff;
reconnectBackoff *= 2;
+1 -1
extension/entrypoints/popup/main.tsx
···
items,
clearItems: () => {
setItems([]);
-
sendMessage("setItems", [], "background");
+
sendMessage("clearItems", {}, "background");
},
connectionStatus: connectionStatus,
error,
+1
extension/types/shim.d.ts
···
setError: string | null;
items: ProtocolWithReturn<{}, Notification[]>;
setItems: Notification[];
+
clearItems: {};
}
}