1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00
metamask-extension/shared/lib/deep-linking.js
João Tavares bde74756d3
Add extension desktop UI (#17748)
* feat: add desktop enable button component

This component will be added
to the experimental page. Users
will then be able to initialize
a desktop connection

* feat: add desktop pairing page

* feat: add desktop deep-linking shared lib

* test: add initial entries to render helper

Allow specifying initialEntries for
MemoryRouter. This change will allow
testing pages that use the useParam
hook.

* feat: add desktop error page

Error page for any desktop pairing
related issue

* feat: add desktop routes to route component

* feat: add enable desktop button to experimental tab

* feat: add desktop icon when paired in dev mode

* feat: disable ledger live control when desktop enabled

* feat: register desktop error actions on ui init

* fix: add missing code fencing

* chore: remove enable desktop rpc middleware

Now that we are adding the UI
there's no need for this rpc middleware
(as it was used to test desktop background
code)

* fix: display experimental tab for desktop
2023-02-23 16:39:48 +00:00

21 lines
712 B
JavaScript

export function openCustomProtocol(protocolLink) {
return new Promise((resolve, reject) => {
// msLaunchUri is windows specific. It will open and app or service
// that handles a given protocol
if (window?.navigator?.msLaunchUri) {
window.navigator.msLaunchUri(protocolLink, resolve, () => {
reject(new Error('Failed to open custom protocol link'));
});
} else {
const timeoutId = window.setTimeout(function () {
reject(new Error('Timeout opening custom protocol link'));
}, 500);
window.addEventListener('blur', function () {
window.clearTimeout(timeoutId);
resolve();
});
window.location = protocolLink;
}
});
}