feat: implement browser extension for media publishing and add backend support for media management
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import { browser } from "wxt/browser";
|
||||
import { defineBackground } from "wxt/utils/define-background";
|
||||
|
||||
import { handlePublisherAction } from "../src/runtime";
|
||||
import { getExtensionState } from "../src/storage";
|
||||
|
||||
export default defineBackground(() => {
|
||||
void getExtensionState();
|
||||
|
||||
browser.runtime.onInstalled.addListener(() => {
|
||||
void getExtensionState();
|
||||
browser.alarms.create("geo.publisher.background-heartbeat", {
|
||||
periodInMinutes: 60,
|
||||
});
|
||||
});
|
||||
|
||||
browser.alarms.onAlarm.addListener(async (alarm) => {
|
||||
if (alarm.name !== "geo.publisher.background-heartbeat") {
|
||||
return;
|
||||
}
|
||||
await getExtensionState();
|
||||
});
|
||||
|
||||
browser.runtime.onMessage.addListener((message) => {
|
||||
if (!message || message.type !== "geo.publisher.request") {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return handlePublisherAction(message.action, message.payload);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user