84 lines
2.7 KiB
TypeScript
84 lines
2.7 KiB
TypeScript
import { markRaw, onBeforeUnmount } from '@common/utils/vueTools'
|
|
import { onSyncAction, sendSyncAction } from '@renderer/utils/ipc'
|
|
import { sync } from '@renderer/store'
|
|
import { appSetting } from '@renderer/store/setting'
|
|
import { SYNC_CODE } from '@common/constants_sync'
|
|
|
|
export default () => {
|
|
const handleSyncList = (event: LX.Sync.SyncMainWindowActions) => {
|
|
// console.log(event)
|
|
switch (event.action) {
|
|
case 'select_mode':
|
|
sync.deviceName = event.data.deviceName
|
|
sync.type = event.data.type
|
|
sync.isShowSyncMode = true
|
|
break
|
|
case 'close_select_mode':
|
|
sync.isShowSyncMode = false
|
|
break
|
|
case 'server_status':
|
|
sync.server.status.status = event.data.status
|
|
sync.server.status.message = event.data.message
|
|
sync.server.status.address = markRaw(event.data.address)
|
|
sync.server.status.code = event.data.code
|
|
sync.server.status.devices = markRaw(event.data.devices)
|
|
break
|
|
case 'client_status':
|
|
sync.client.status.status = event.data.status
|
|
sync.client.status.message = event.data.message
|
|
sync.client.status.address = markRaw(event.data.address)
|
|
if (event.data.message == SYNC_CODE.missingAuthCode || event.data.message == SYNC_CODE.authFailed) {
|
|
if (!sync.isShowAuthCodeModal) sync.isShowAuthCodeModal = true
|
|
} else if (sync.isShowAuthCodeModal) sync.isShowAuthCodeModal = false
|
|
break
|
|
}
|
|
}
|
|
|
|
const rSyncAction = onSyncAction(({ params }) => {
|
|
handleSyncList(params)
|
|
})
|
|
|
|
onBeforeUnmount(() => {
|
|
rSyncAction()
|
|
})
|
|
|
|
return async() => {
|
|
sync.enable = appSetting['sync.enable']
|
|
sync.mode = appSetting['sync.mode']
|
|
sync.server.port = appSetting['sync.server.port']
|
|
sync.client.host = appSetting['sync.client.host']
|
|
if (appSetting['sync.enable']) {
|
|
switch (appSetting['sync.mode']) {
|
|
case 'server':
|
|
if (appSetting['sync.server.port']) {
|
|
void sendSyncAction({
|
|
action: 'enable_server',
|
|
data: {
|
|
enable: appSetting['sync.enable'],
|
|
port: appSetting['sync.server.port'],
|
|
},
|
|
}).catch(err => {
|
|
console.log(err)
|
|
})
|
|
}
|
|
break
|
|
case 'client':
|
|
if (appSetting['sync.client.host']) {
|
|
void sendSyncAction({
|
|
action: 'enable_client',
|
|
data: {
|
|
enable: appSetting['sync.enable'],
|
|
host: appSetting['sync.client.host'],
|
|
},
|
|
}).catch(err => {
|
|
console.log(err)
|
|
})
|
|
}
|
|
break
|
|
default:
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|