diff --git a/packages/ui-default/components/navigation/navigation.page.js b/packages/ui-default/components/navigation/navigation.page.js
index 1f3391ee9..567efb3c0 100644
--- a/packages/ui-default/components/navigation/navigation.page.js
+++ b/packages/ui-default/components/navigation/navigation.page.js
@@ -1,9 +1,7 @@
import $ from 'jquery';
import Slideout from 'slideout';
-import UserSelectAutoComplete from 'vj/components/autocomplete/UserSelectAutoComplete';
-import { ActionDialog } from 'vj/components/dialog';
-import createHint from 'vj/components/hint';
import Notification from 'vj/components/notification';
+import selectUser from 'vj/components/selectUser';
import { AutoloadPage } from 'vj/misc/Page';
import i18n from 'vj/utils/i18n';
import request from 'vj/utils/request';
@@ -17,46 +15,16 @@ function handleNavLogoutClick(ev) {
ev.preventDefault();
}
-function handlerSwitchAccount(ev) {
- let userSelector;
- const promise = new ActionDialog({
- $body: tpl`
-
+
+
${i18n('Select User')}
+
+
+
+
+
+
+
`);
+ el.appendTo(document.body);
+ if (hint) createHint(hint, $('[name="select_user_hint"]'));
+ inserted = true;
+ }
+ const userSelector = UserSelectAutoComplete.getOrConstruct($('.dialog__body--user-select [name="user"]')) as any;
+ const userSelectDialog = new ActionDialog({
+ $body: $('.dialog__body--user-select > div'),
+ onDispatch(action) {
+ if (action === 'ok' && userSelector.value() === null) {
+ userSelector.focus();
+ return false;
+ }
+ return true;
+ },
+ });
+ userSelector.clear();
+ const action = await userSelectDialog.open();
+ if (action !== 'ok') return null;
+ return userSelector.value();
+}
+
+window.Hydro.components.selectUser = selectUser;
diff --git a/packages/ui-default/pages/home_messages.page.jsx b/packages/ui-default/pages/home_messages.page.jsx
index 15ef3ba60..d8ef2a0de 100644
--- a/packages/ui-default/pages/home_messages.page.jsx
+++ b/packages/ui-default/pages/home_messages.page.jsx
@@ -1,9 +1,8 @@
import $ from 'jquery';
import React from 'react';
import { createRoot } from 'react-dom/client';
-import UserSelectAutoComplete from 'vj/components/autocomplete/UserSelectAutoComplete';
-import { ActionDialog } from 'vj/components/dialog';
import VjNotification from 'vj/components/notification';
+import selectUser from 'vj/components/selectUser';
import { NamedPage } from 'vj/misc/Page';
import api, { gql } from 'vj/utils/api';
import loadReactRedux from 'vj/utils/loadReactRedux';
@@ -55,32 +54,12 @@ const page = new NamedPage('home_messages', () => {
notification.show();
};
- const userSelector = UserSelectAutoComplete.getOrConstruct($('.dialog__body--user-select [name="user"]'));
- const userSelectDialog = new ActionDialog({
- $body: $('.dialog__body--user-select > div'),
- onDispatch(action) {
- if (action === 'ok' && userSelector.value() === null) {
- userSelector.focus();
- return false;
- }
- return true;
- },
- });
- userSelectDialog.clear = function () {
- userSelector.clear();
- return this;
- };
-
createRoot($('#messagePad').get(0)).render(