feat: sync sessions list of independent pages

This commit is contained in:
josc146
2023-04-08 20:04:49 +08:00
parent 2af9fcf24e
commit d5bc2a8ed6
2 changed files with 7 additions and 3 deletions
+2 -2
View File
@@ -2,7 +2,7 @@ import { useEffect, useState } from 'react'
import { defaultConfig, getUserConfig } from '../config/index.mjs'
import Browser from 'webextension-polyfill'
export function useConfig(initFn) {
export function useConfig(initFn, ignoreSession = true) {
const [config, setConfig] = useState(defaultConfig)
useEffect(() => {
getUserConfig().then((config) => {
@@ -12,7 +12,7 @@ export function useConfig(initFn) {
}, [])
useEffect(() => {
const listener = (changes) => {
if (Object.keys(changes).length === 1 && 'sessions' in changes) return
if (ignoreSession) if (Object.keys(changes).length === 1 && 'sessions' in changes) return
const changedItems = Object.keys(changes)
let newConfig = {}
+5 -1
View File
@@ -19,7 +19,7 @@ import Browser from 'webextension-polyfill'
function App() {
const { t } = useTranslation()
const [collapsed, setCollapsed] = useState(true)
const config = useConfig()
const config = useConfig(null, false)
const [sessions, setSessions] = useState([])
const [sessionId, setSessionId] = useState(null)
const [currentSession, setCurrentSession] = useState(null)
@@ -54,6 +54,10 @@ function App() {
})()
}, [])
useEffect(() => {
if ('sessions' in config && config['sessions']) setSessions(config['sessions'])
}, [config])
useEffect(() => {
// eslint-disable-next-line
;(async () => {