diff --git a/src/common/environment.ts b/src/common/environment.ts index 0f09320..e5e1371 100644 --- a/src/common/environment.ts +++ b/src/common/environment.ts @@ -33,6 +33,7 @@ export interface SettingsConfig { borderRadius: string; themeColor: string; skipCssImageSizeMB: number; + expertMode: boolean; history: SettingsHistoryConfig; } @@ -57,6 +58,7 @@ export const environmentConfig: EnvironmentConfig = { borderRadius: '5px', themeColor: '#ff0000', skipCssImageSizeMB: 2, + expertMode: false, history: { pinComment: true, pinDraw: true, diff --git a/src/common/keys/object.store.keys.ts b/src/common/keys/object.store.keys.ts index 8b997ff..75e0fe9 100644 --- a/src/common/keys/object.store.keys.ts +++ b/src/common/keys/object.store.keys.ts @@ -49,7 +49,6 @@ export class ObjectStoreKeys { // SYNC static readonly SYNC_INTERVAL = 'sync:interval'; static readonly SYNC_PROGRESS = 'sync:progress'; - static readonly SYNC_IN = 'sync:obj:in'; static readonly SYNC_TX = 'sync:tx'; // SETTINGS diff --git a/src/default-popup/components/account/account-details.component.tsx b/src/default-popup/components/account/account-details.component.tsx index fbc073f..05eccec 100644 --- a/src/default-popup/components/account/account-details.component.tsx +++ b/src/default-popup/components/account/account-details.component.tsx @@ -124,7 +124,7 @@ export const AccountDetailsComponent: FunctionComponent = (props) => { -
+
{responseError?.code} {responseError?.message} diff --git a/src/default-popup/components/main/main-footer.button.tsx b/src/default-popup/components/main/main-footer.button.tsx index 95a1f2b..1fbc0f4 100644 --- a/src/default-popup/components/main/main-footer.button.tsx +++ b/src/default-popup/components/main/main-footer.button.tsx @@ -26,7 +26,7 @@ interface Props { export const MainFooterButton: FunctionComponent = (props) => { return ( -
+
= (props) => {

{dayjs(props.createdAt).format(DATE_YEAR_SECOND)}

- + diff --git a/src/options-ui/components/preview/html-preview.component.tsx b/src/options-ui/components/preview/html-preview.component.tsx index 7bef084..19e5243 100644 --- a/src/options-ui/components/preview/html-preview.component.tsx +++ b/src/options-ui/components/preview/html-preview.component.tsx @@ -90,8 +90,6 @@ export const HtmlPreviewComponent: FunctionComponent = (props) => { const el = htmlRef.current?.lastElementChild as HTMLIFrameElement; if (!el.contentDocument || !el.contentWindow) return; - - await SettingsStore.fetchData(); fnConsoleLog('HtmlPreviewComponent->renderPins', ids); for (const id of ids) { diff --git a/src/options-ui/components/settings/content/content-settings.component.tsx b/src/options-ui/components/settings/content/content-settings.component.tsx index 9ac2647..200e04a 100644 --- a/src/options-ui/components/settings/content/content-settings.component.tsx +++ b/src/options-ui/components/settings/content/content-settings.component.tsx @@ -22,6 +22,7 @@ import { ObjectStoreKeys } from '../../../../common/keys/object.store.keys'; import { SettingsConfig } from '../../../../common/environment'; import { SettingsStore } from '../../../store/settings.store'; import Typography from '@mui/material/Typography'; +import Checkbox from '@mui/material/Checkbox'; const borderContainer: CSSProperties = { display: 'flex', @@ -32,13 +33,13 @@ const borderContainer: CSSProperties = { export const ContentSettingsComponent: FunctionComponent = () => { const [borderRadius, setBorderRadius] = useState(''); const [borderStyle, setBorderStyle] = useState(''); + const [expertMode, setExpertMode] = useState(false); useEffect(() => { - setTimeout(async () => { - await SettingsStore.fetchData(); - setBorderRadius(SettingsStore.settings?.borderRadius || `${DEFAULT_BORDER_RADIUS}px`); - setBorderStyle(SettingsStore.settings?.borderStyle || '2px solid #ff0000'); - }, 0); + if (!SettingsStore.settings) return; + setBorderRadius(SettingsStore.settings.borderRadius || `${DEFAULT_BORDER_RADIUS}px`); + setBorderStyle(SettingsStore.settings.borderStyle || '2px solid #ff0000'); + setExpertMode(SettingsStore.settings.expertMode || false); }, []); const handleBorderRadiusChange = async (e: ChangeEvent): Promise => { @@ -55,6 +56,13 @@ export const ContentSettingsComponent: FunctionComponent = () => { await BrowserStorage.set(ObjectStoreKeys.CONTENT_SETTINGS_KEY, SettingsStore.settings); }; + const handleExpertModeChange = async () => { + if (!SettingsStore.settings) return; + setExpertMode(!expertMode); + SettingsStore.settings.expertMode = !expertMode; + await BrowserStorage.set(ObjectStoreKeys.CONTENT_SETTINGS_KEY, SettingsStore.settings); + }; + return (
@@ -75,6 +83,12 @@ export const ContentSettingsComponent: FunctionComponent = () => {
+
+ + expert mode + + +
); }; diff --git a/src/options-ui/components/settings/screenshot/screenshot-settings.component.tsx b/src/options-ui/components/settings/screenshot/screenshot-settings.component.tsx index f11e0a2..dcb1ff5 100644 --- a/src/options-ui/components/settings/screenshot/screenshot-settings.component.tsx +++ b/src/options-ui/components/settings/screenshot/screenshot-settings.component.tsx @@ -36,11 +36,9 @@ export const ScreenshotSettingsComponent: FunctionComponent = () => { const [screenshotQuality, setScreenshotQuality] = useState(0); useEffect(() => { - setTimeout(async () => { - await SettingsStore.fetchData(); - setScreenshotQuality(SettingsStore.settings?.screenshotQuality || 0); - setScreenshotFormat(SettingsStore.settings?.screenshotFormat || 'jpeg'); - }, 0); + if (!SettingsStore.settings) return; + setScreenshotQuality(SettingsStore.settings.screenshotQuality || 0); + setScreenshotFormat(SettingsStore.settings.screenshotFormat || 'jpeg'); }, []); const handleScreenshotQuality = async (e: ChangeEvent): Promise => { diff --git a/src/options-ui/options-message.handler.ts b/src/options-ui/options-message.handler.ts index ccc097a..db307ce 100644 --- a/src/options-ui/options-message.handler.ts +++ b/src/options-ui/options-message.handler.ts @@ -19,6 +19,7 @@ import { BusMessageType } from '../common/model/bus.model'; import { ExtensionPopupInitData } from '../common/model/obj-request.model'; import { TinyDispatcher } from '@pinmenote/tiny-dispatcher'; import { fnConsoleLog } from '../common/fn/fn-console'; +import { SettingsStore } from './store/settings.store'; export class OptionsMessageHandler { static init(): void { @@ -27,6 +28,9 @@ export class OptionsMessageHandler { BrowserApi.sendRuntimeMessage({ type: BusMessageType.OPTIONS_SYNC_INCOMING_CHANGES }).catch((e) => fnConsoleLog('OPTIONS_SYNC_INCOMING_CHANGES->ERROR', e) ); + SettingsStore.fetchData().catch(() => { + /* IGNORE */ + }); } private static handleRemoteMessage = ( diff --git a/src/service-worker/command/sw/sw-init-settings.command.ts b/src/service-worker/command/sw/sw-init-settings.command.ts index c316740..8b385b2 100644 --- a/src/service-worker/command/sw/sw-init-settings.command.ts +++ b/src/service-worker/command/sw/sw-init-settings.command.ts @@ -16,7 +16,6 @@ */ import { SettingsConfig, environmentConfig } from '../../../common/environment'; import { BrowserStorage } from '@pinmenote/browser-api'; -import { CryptoGenerateKeyPairCommand } from '../../../common/command/crypto/crypto-generate-key-pair.command'; import { ICommand } from '../../../common/model/shared/common.dto'; import { ObjectStoreKeys } from '../../../common/keys/object.store.keys'; import { fnConsoleLog } from '../../../common/fn/fn-console'; @@ -27,7 +26,6 @@ export class SwInitSettingsCommand implements ICommand> { if (!settings) { fnConsoleLog('Settings Initialize'); await BrowserStorage.set(ObjectStoreKeys.CONTENT_SETTINGS_KEY, environmentConfig.settings); - await new CryptoGenerateKeyPairCommand().execute(); } else if (settings.version !== environmentConfig.settings.version) { fnConsoleLog('Settings Migrate placeholder'); } else {