From 87645bfad3943e1110e4cb2e038124083e8ae793 Mon Sep 17 00:00:00 2001 From: vnugent Date: Sun, 28 Jan 2024 19:56:02 -0500 Subject: progress update --- .../primary/components/PromptPopup.vue | 88 ++++++-- .../src/entries/contentScript/primary/main.js | 2 + extension/src/entries/contentScript/util.ts | 4 +- extension/src/entries/options/App.vue | 32 +-- .../src/entries/options/components/Activity.vue | 121 +++++++++++ .../src/entries/options/components/AutoRules.vue | 54 ++--- .../entries/options/components/EvHistoryTable.vue | 6 +- .../entries/options/components/EventHistory.vue | 222 ++++++++++++--------- .../src/entries/options/components/Identities.vue | 27 ++- .../entries/options/components/SiteSettings.vue | 21 ++ extension/src/entries/options/main.js | 2 + .../entries/popup/Components/IdentitySelection.vue | 4 +- extension/src/entries/store/features.ts | 13 +- extension/src/entries/store/identity.ts | 7 +- extension/src/entries/store/index.ts | 5 +- extension/src/entries/store/types.ts | 3 +- 16 files changed, 419 insertions(+), 192 deletions(-) create mode 100644 extension/src/entries/options/components/Activity.vue (limited to 'extension/src/entries') diff --git a/extension/src/entries/contentScript/primary/components/PromptPopup.vue b/extension/src/entries/contentScript/primary/components/PromptPopup.vue index 1f62877..b2415b9 100644 --- a/extension/src/entries/contentScript/primary/components/PromptPopup.vue +++ b/extension/src/entries/contentScript/primary/components/PromptPopup.vue @@ -1,11 +1,12 @@ +const getRuleName = (rule: CreateRuleType) => { + switch (rule) { + default: + return 'None' + case CreateRuleType.AllowOnce: + return "Allow Once" + case CreateRuleType.AllowForever: + return "Allow Forever" + case CreateRuleType.FiveMinutes: + return "5 Minutes" + case CreateRuleType.OneHour: + return "1 Hour" + case CreateRuleType.OneDay: + return "1 Day" + case CreateRuleType.OneWeek: + return "1 Week" + case CreateRuleType.OneMonth: + return "1 Month" + } +} + +const createOption = (rule: CreateRuleType): Option => { + return { name: getRuleName(rule), value: rule } +} + +const creatGroup = (name: string, options: Option[]): OptionGroup => { + return { name, options } +} + +const lbOptions = ((): OptionGroup[] => { + return[ + creatGroup('Allow', [ + createOption(CreateRuleType.AllowOnce), + createOption(CreateRuleType.AllowForever) + ]), + creatGroup('Allow for', [ + createOption(CreateRuleType.FiveMinutes), + createOption(CreateRuleType.OneHour), + createOption(CreateRuleType.OneDay), + createOption(CreateRuleType.OneWeek), + createOption(CreateRuleType.OneMonth) + ]) + ] +})() + +const modelToString = (rule: CreateRuleType) => getRuleName(rule) + + \ No newline at end of file diff --git a/extension/src/entries/contentScript/primary/main.js b/extension/src/entries/contentScript/primary/main.js index 15fc2ec..2e05ca3 100644 --- a/extension/src/entries/contentScript/primary/main.js +++ b/extension/src/entries/contentScript/primary/main.js @@ -19,6 +19,7 @@ import { defer } from "lodash"; import { createPinia } from 'pinia'; import { useBackgroundPiniaPlugin, identityPlugin, originPlugin, permissionsPlugin } from '../../store' import { onLoad } from "../util"; +import ListBox from '../../../components/ListBox.vue' import renderContent from "../renderContent"; import App from "./App.vue"; import Notification from '@kyvg/vue3-notification' @@ -64,6 +65,7 @@ renderContent([], (appRoot, shadowRoot) => { .use(store) .use(Notification) .component('fa-icon', FontAwesomeIcon) + .component('list-box', ListBox) .mount(appRoot); //Load the nostr shim diff --git a/extension/src/entries/contentScript/util.ts b/extension/src/entries/contentScript/util.ts index aecb7b2..192f1c1 100644 --- a/extension/src/entries/contentScript/util.ts +++ b/extension/src/entries/contentScript/util.ts @@ -25,7 +25,7 @@ const registerWindowHandler = (store: Store, extName: string) => { const { selectedKey } = storeToRefs(store) const { nostr, permission } = store.plugins; - const onAsyncCall = async ({ source, data, origin } : MessageEvent) => { + const onAsyncCall = async ({ data, origin } : MessageEvent) => { //clean any junk/methods with json parse/stringify data = JSON.parse(JSON.stringify(data)) @@ -38,7 +38,7 @@ const registerWindowHandler = (store: Store, extName: string) => { } //Confirm the message format is correct - if (!isEqual(source, window) || isEmpty(data) || isNil(data.type)) { + if (isEmpty(data) || isNil(data.type)) { return } //Confirm extension is for us diff --git a/extension/src/entries/options/App.vue b/extension/src/entries/options/App.vue index 3dbe94d..f62795f 100644 --- a/extension/src/entries/options/App.vue +++ b/extension/src/entries/options/App.vue @@ -12,7 +12,7 @@

NVault

- + - -
  • - - Page - {{ currentPage }} - of - {{ pageCount }} - -
  • -
  • - -
  • - - + -
    +
    @@ -40,7 +19,7 @@ Origin @@ -52,10 +31,12 @@ {{ rule.type }}
    - Time + Expires
    - {{ rule.origin }} + + {{ rule.origin }} + - {{ createShortDateAndTime(rule) }} + {{ getExpiration(rule) }}
    @@ -73,7 +54,7 @@