Skip to content

Commit 1407dfe

Browse files
committed
Fullscreen support
1 parent 10fb648 commit 1407dfe

1 file changed

Lines changed: 53 additions & 53 deletions

File tree

Packages/com.walletconnect.web3modal/Plugins/Web3Modal.jslib

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -74,53 +74,6 @@ mergeInto(LibraryManager.library, {
7474
const enableOnramp = parameters.enableOnramp;
7575

7676
console.log("Parameters", parameters);
77-
78-
const addCanvasActiveStyles = () => {
79-
const styleElement = document.createElement('style');
80-
styleElement.id = 'canvas-active-styles';
81-
styleElement.innerHTML = `
82-
.canvas-active {
83-
position: fixed !important;
84-
top: 0 !important;
85-
right: 0 !important;
86-
bottom: 0 !important;
87-
left: 0 !important;
88-
width: 100% !important;
89-
height: 100% !important;
90-
}
91-
`;
92-
document.head.appendChild(styleElement);
93-
};
94-
95-
const removeCanvasActiveStyles = () => {
96-
const styleElement = document.getElementById('canvas-active-styles');
97-
if (styleElement) {
98-
document.head.removeChild(styleElement);
99-
}
100-
};
101-
102-
const html = document.querySelector('html');
103-
html?.addEventListener('fullscreenchange', () => {
104-
const canvas = document.querySelector('canvas');
105-
console.log('fullscreenchange', canvas)
106-
if (document.fullscreenElement) {
107-
console.log('fullscreenchange true')
108-
if (!canvas?.classList.contains('canvas-active')) {
109-
console.log('fullscreenchange true add canvas-active')
110-
111-
addCanvasActiveStyles();
112-
canvas?.classList.add('canvas-active');
113-
}
114-
} else {
115-
console.log('fullscreenchange false')
116-
if (canvas?.classList.contains('canvas-active')) {
117-
console.log('fullscreenchange false remove canvas-active')
118-
119-
canvas?.classList.remove('canvas-active');
120-
removeCanvasActiveStyles();
121-
}
122-
}
123-
});
12477

12578
// Load the scripts and initialize the configuration
12679
import("https://cdn.jsdelivr.net/npm/cdn-wagmi@3.0.0/dist/cdn-wagmi.js").then(CDNW3M => {
@@ -151,21 +104,68 @@ mergeInto(LibraryManager.library, {
151104
const modal = createWeb3Modal({
152105
wagmiConfig: config,
153106
projectId,
154-
enableAnalytics: false, // Optional - defaults to your Cloud configuration
155-
enableOnramp: enableOnramp // Optional - false as default
107+
enableOnramp: enableOnramp
156108
});
157109

158-
modal.subscribeEvents(event => console.log("New Event!", event));
159-
160-
console.log("Web3Modal modal created", modal);
161-
162110
// Store the configuration and modal globally
163111
_web3ModalConfig = {
164112
config: config,
165113
modal: modal,
166114
wagmiCore: WagmiCore
167115
};
168116

117+
118+
// Insert the container into the DOM at the canvas's original position
119+
const canvas = document.getElementsByTagName('canvas')[0];
120+
const container = document.createElement('div');
121+
container.id = 'canvas-container';
122+
canvas.parentNode.insertBefore(container, canvas);
123+
container.appendChild(canvas);
124+
125+
// Add styles to enable fullscreen compatibility
126+
const addCanvasActiveStyles = () => {
127+
const styleElement = document.createElement('style');
128+
styleElement.id = 'canvas-active-styles';
129+
styleElement.innerHTML = `
130+
.canvas-active {
131+
position: fixed !important;
132+
top: 0 !important;
133+
right: 0 !important;
134+
bottom: 0 !important;
135+
left: 0 !important;
136+
width: 100% !important;
137+
height: 100% !important;
138+
}
139+
`;
140+
document.head.appendChild(styleElement);
141+
142+
const web3modal = document.createElement('w3m-modal');
143+
container.appendChild(web3modal);
144+
};
145+
146+
const removeCanvasActiveStyles = () => {
147+
const styleElement = document.getElementById('canvas-active-styles');
148+
if (styleElement) {
149+
document.head.removeChild(styleElement);
150+
}
151+
};
152+
153+
// Handle fullscreen changes
154+
container?.addEventListener('fullscreenchange', () => {
155+
const canvas = document.querySelector('canvas');
156+
if (document.fullscreenElement) {
157+
if (!canvas?.classList.contains('canvas-active')) {
158+
addCanvasActiveStyles();
159+
canvas?.classList.add('canvas-active');
160+
}
161+
} else {
162+
if (canvas?.classList.contains('canvas-active')) {
163+
canvas?.classList.remove('canvas-active');
164+
removeCanvasActiveStyles();
165+
}
166+
}
167+
});
168+
169169
{{{makeDynCall('v', 'callbackPtr')}}}();
170170
});
171171
},

0 commit comments

Comments
 (0)