Skip to content

Commit 9f42b98

Browse files
committed
优化:智能区域默认为 overflow hidden 样式,增加加载中样式
1 parent 5c2481f commit 9f42b98

4 files changed

Lines changed: 39 additions & 5 deletions

File tree

electron/preload/focusany.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,16 @@ const ipcSendToHost = (type: string, data?: any, hasResult?: boolean): Promise<a
4242
if (hasResult) {
4343
const timeoutTimer = setTimeout(() => {
4444
executeHook('Log', `${type}.timeout`)
45-
ipcRenderer.removeAllListeners(`FocusAny.FastPanel.${id}`)
45+
ipcRenderer.removeAllListeners(`FocusAny.View.${id}`)
4646
reject(new Error('timeout'))
4747
}, 60 * 1000)
48-
ipcRenderer.once(`FocusAny.FastPanel.${id}`, (_event, result) => {
48+
ipcRenderer.once(`FocusAny.View.${id}`, (_event, result) => {
4949
executeHook('Log', `${type}.result`, result)
5050
clearTimeout(timeoutTimer)
5151
resolve(result)
5252
})
5353
}
54-
ipcRenderer.sendToHost('FocusAny.FastPanel', {
54+
ipcRenderer.sendToHost('FocusAny.View', {
5555
id,
5656
type,
5757
data,

src/pages/FastPanel/FastPanelResult.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ const {
4848
:useragent="`${webUserAgent} PluginAction/${r.fullName}`"
4949
webpreferences="contextIsolation=false,sandbox=false"
5050
disablewebsecurity></webview>
51+
<div class="view-item-loading" v-if="!r['_webReady']">
52+
<icon-loading/>
53+
</div>
5154
</div>
5255
</div>
5356
</div>
@@ -134,9 +137,21 @@ const {
134137
}
135138
136139
.view-item-body {
140+
position: relative;
141+
137142
.web {
138143
transition: height 0.3s;
139144
}
145+
146+
.view-item-loading {
147+
position: absolute;
148+
inset: 0;
149+
display: flex;
150+
justify-content: center;
151+
align-items: center;
152+
background: rgba(255, 255, 255, 0.8);
153+
z-index: 1;
154+
}
140155
}
141156
142157
.action-item-box {

src/pages/Main/Lib/viewOperate.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@ export const useViewOperate = (type: 'fastPanel' | 'main') => {
2828
return manager.viewActions.map(a => {
2929
a['_web'] = null
3030
a['_webInit'] = false
31+
a['_webReady'] = false
3132
a['_height'] = a.runtime?.view?.heightView || 100
3233
return a
3334
})
3435
}
3536
return manager.fastPanelViewActions.map(a => {
3637
a['_web'] = null
3738
a['_webInit'] = false
39+
a['_webReady'] = false
3840
a['_height'] = a.runtime?.view?.heightView || 100
3941
return a
4042
})
@@ -60,6 +62,8 @@ export const useViewOperate = (type: 'fastPanel' | 'main') => {
6062
readyData['isView'] = true;
6163
((aa) => {
6264
aa['_web'].addEventListener('did-finish-load', async () => {
65+
aa['_webReady'] = true
66+
aa['_web'].insertCSS(`body{overflow: hidden;}`)
6367
if (setting.shouldDarkMode()) {
6468
aa['_web'].executeJavaScript(`
6569
document.body.setAttribute('data-theme', 'dark');
@@ -80,15 +84,15 @@ export const useViewOperate = (type: 'fastPanel' | 'main') => {
8084
}
8185
})
8286
aa['_web'].addEventListener('ipc-message', (event) => {
83-
if ('FocusAny.FastPanel' === event.channel) {
87+
if ('FocusAny.View' === event.channel) {
8488
const {id, type, data} = event.args[0]
8589
switch (type) {
8690
case 'view.setHeight':
8791
aa['_height'] = data.height
8892
break
8993
case 'view.getHeight':
9094
// console.log('view.getHeight', aa['_height'])
91-
aa['_web'].send(`FocusAny.FastPanel.${id}`, aa['_height'])
95+
aa['_web'].send(`FocusAny.View.${id}`, aa['_height'])
9296
break
9397
}
9498
}

src/pages/Main/MainResult.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@
142142
:useragent="`${webUserAgent} PluginAction/${r.fullName}`"
143143
webpreferences="contextIsolation=false,sandbox=false"
144144
disablewebsecurity></webview>
145+
<div class="view-item-loading" v-if="!r['_webReady']">
146+
<icon-loading/>
147+
</div>
145148
</div>
146149
</div>
147150
</div>
@@ -296,9 +299,21 @@ defineExpose({
296299
}
297300
298301
.view-item-body {
302+
position: relative;
303+
299304
.web {
300305
transition: height 0.3s;
301306
}
307+
308+
.view-item-loading {
309+
position: absolute;
310+
inset: 0;
311+
display: flex;
312+
justify-content: center;
313+
align-items: center;
314+
background: rgba(255, 255, 255, 0.8);
315+
z-index: 1;
316+
}
302317
}
303318
}
304319
}

0 commit comments

Comments
 (0)