8000 wip · NativeLaravel/electron-plugin@20a76f3 · GitHub
[go: up one dir, main page]

Skip to content

Commit 20a76f3

Browse files
committed
wip
1 parent 4fab598 commit 20a76f3

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

dist/preload/index.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,24 @@ electron_1.ipcRenderer.on('log', (event, { level, message, context }) => {
3737
console.log(`[${level}] ${message}`, context);
3838
}
3939
});
40+
electron_1.ipcRenderer.on('native-event', (event, data) => {
41+
if (!window.livewire) {
42+
return;
43+
}
44+
window.livewire.components.components().forEach(component => {
45+
if (Array.isArray(component.listeners)) {
46+
component.listeners.forEach(event => {
47+
if (event.startsWith('native')) {
48+
let event_parts = event.split(/(native:|native-)|:|,/);
49+
if (event_parts[1] == 'native:') {
50+
event_parts.splice(2, 0, 'private', undefined, 'nativephp', undefined);
51+
}
52+
let [s1, signature, channel_type, s2, channel, s3, event_name,] = event_parts;
53+
if (data.event === event_name) {
54+
window.livewire.emit(event, data.payload);
55+
}
56+
}
57+
});
58+
}
59+
});
60+
});

src/preload/index.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,40 @@ ipcRenderer.on('log', (event, {level, message, context}) => {
1313
console.log(`[${level}] ${message}`, context)
1414
}
1515
});
16+
17+
// Add Livewire event listeners
18+
ipcRenderer.on('native-event', (event, data) => {
19+
// @ts-ignore
20+
if (!window.livewire) {
21+
return;
22+
}
23+
// @ts-ignore
24+
window.livewire.components.components().forEach(component => {
25+
if (Array.isArray(component.listeners)) {
26+
component.listeners.forEach(event => {
27+
if (event.startsWith('native')) {
28+
let event_parts = event.split(/(native:|native-)|:|,/)
29+
30+
if (event_parts[1] == 'native:') {
31+
event_parts.splice(2, 0, 'private', undefined, 'nativephp', undefined)
32+
}
33+
34+
let [
35+
s1,
36+
signature,
37+
channel_type,
38+
s2,
39+
channel,
40+
s3,
41+
event_name,
42+
] = event_parts
43+
44+
if (data.event === event_name) {
45+
// @ts-ignore
46+
window.livewire.emit(event, data.payload)
47+
}
48+
}
49+
})
50+
}
51+
})
52+
})

0 commit comments

Comments
 (0)
0