feat: 🎸 add disconnect button to error page
This commit is contained in:
8 files changed
+46
-3
No files matched your search
@@ -71,6 +71,16 @@ export default class ApplicationRoute extends Route.extend(
|
||||
this.session.invalidate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Disconnects from origin and invalidates session, thereby resetting
|
||||
* the client and reloading to the onboarding origin screen.
|
||||
*/
|
||||
@action
|
||||
disconnect() {
|
||||
this.origin.resetOrigin();
|
||||
this.invalidateSession();
|
||||
}
|
||||
|
||||
/**
|
||||
* Hooks into ember-loading to kick off loading indicator in the
|
||||
* application template.
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import Service from '@ember/service';
|
||||
import { assert } from '@ember/debug';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { notifyError } from 'core/decorators/notify';
|
||||
|
||||
export default class OriginService extends Service {
|
||||
|
||||
@@ -72,4 +73,13 @@ export default class OriginService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the origin.
|
||||
*/
|
||||
@notifyError(({ message }) => message, { catch: true })
|
||||
async resetOrigin() {
|
||||
this.rendererOrigin = null;
|
||||
await this.ipc.invoke('resetOrigin');
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,15 @@
|
||||
{{page-title (t "errors.generic.title") }}
|
||||
|
||||
<main>
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Error::Message />
|
||||
</Rose::Layout::Centered>
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Button @style="primary" {{on "click" (route-action "disconnect")}}>
|
||||
{{t "actions.disconnect"}}
|
||||
</Rose::Button>
|
||||
</Rose::Layout::Centered>
|
||||
|
||||
</main>
|
||||
@@ -17,6 +17,13 @@ handle('setOrigin', async (requestOrigin) => {
|
||||
origin.origin = requestOrigin;
|
||||
});
|
||||
|
||||
/**
|
||||
* Resets the origin.
|
||||
*/
|
||||
handle('resetOrigin', async (requestOrigin) => {
|
||||
origin.resetOrigin();
|
||||
});
|
||||
|
||||
/**
|
||||
* Check for boundary cli existence
|
||||
*/
|
||||
|
||||
@@ -24,7 +24,7 @@ class RuntimeSettings {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Validates the origin is reachable and has a scopes endpoint.
|
||||
*/
|
||||
async validateOrigin(origin) {
|
||||
// If the origin is the Electron origin, it is automatically valid.
|
||||
@@ -40,6 +40,13 @@ class RuntimeSettings {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the origin to null.
|
||||
*/
|
||||
async resetOrigin() {
|
||||
this.origin = null;
|
||||
}
|
||||
|
||||
// Quick and dirty event handler pattern to enable the application to respond
|
||||
// when the origin is changed.
|
||||
#originWatchers = [];
|
||||
|
||||
Reference in new issue
Block a user