Browse Source

Bugfix: Make sure form type is properly rendered

Otherwise we get the error: `Form is not of type room configuration`
JC Brand 1 năm trước cách đây
mục cha
commit
36048d8579

+ 1 - 2
src/headless/utils/url.js

@@ -13,8 +13,7 @@ const settings = settings_api;
 export function isValidURL (text) {
     try {
         return !!(new URL(text));
-    } catch (error) {
-        log.debug(error);
+    } catch {
         return false;
     }
 }

+ 2 - 0
src/plugins/profile/statusview.js

@@ -31,3 +31,5 @@ class Profile extends CustomElement {
 }
 
 api.elements.define('converse-user-profile', Profile);
+
+export default Profile;

+ 7 - 1
src/plugins/profile/templates/profile.js

@@ -14,11 +14,17 @@ function tplSignout () {
 
 function tplUserSettingsButton (o) {
     const i18n_details = __('Show details about this chat client');
-    return html`<a class="controlbox-heading__btn show-client-info align-self-center" title="${i18n_details}" @click=${o.showUserSettingsModal}>
+    return html`<a class="controlbox-heading__btn show-client-info align-self-center"
+        title="${i18n_details}"
+        @click=${o.showUserSettingsModal}>
+
         <converse-icon class="fa fa-cog" size="1em"></converse-icon>
     </a>`;
 }
 
+/**
+ * @param {import('../statusview').default} el
+ */
 export default (el) => {
     const chat_status = el.model.get('status') || 'offline';
     const status_message = el.model.get('status_message') || __("I am %1$s", getPrettyStatus(chat_status));

+ 10 - 1
src/types/plugins/profile/statusview.d.ts

@@ -1,2 +1,11 @@
-export {};
+export default Profile;
+declare class Profile extends CustomElement {
+    initialize(): void;
+    model: any;
+    render(): import("lit-html").TemplateResult<1>;
+    showProfileModal(ev: any): void;
+    showStatusChangeModal(ev: any): void;
+    showUserSettingsModal(ev: any): void;
+}
+import { CustomElement } from "shared/components/element.js";
 //# sourceMappingURL=statusview.d.ts.map

+ 1 - 1
src/types/plugins/profile/templates/profile.d.ts

@@ -1,3 +1,3 @@
-declare function _default(el: any): import("lit-html").TemplateResult<1>;
+declare function _default(el: import('../statusview').default): import("lit-html").TemplateResult<1>;
 export default _default;
 //# sourceMappingURL=profile.d.ts.map

+ 3 - 3
src/utils/html.js

@@ -487,9 +487,6 @@ export function xFormField2TemplateResult(xfield, options = {}) {
     } else if (xfield['type'] === 'boolean') {
         return tplFormCheckbox({ ...default_vals, ...xfield });
 
-    } else if (xfield.var === 'url' || xfield.var === 'uri' || isValidURL(xfield.value)) {
-        return tplFormUrl(xfield);
-
     } else if (xfield.var === 'username') {
         return tplFormUsername({
             ...default_vals,
@@ -511,6 +508,9 @@ export function xFormField2TemplateResult(xfield, options = {}) {
             data: xfield.uri.data,
             type: xfield.uri.type,
         });
+    } else if (xfield.type !== 'hidden' && (xfield.var === 'url' || xfield.var === 'uri' || isValidURL(xfield.value))) {
+        return tplFormUrl(xfield);
+
     } else {
         const date = xfield.value ? dayjs(xfield.value) : null;
         if (date?.isValid()) {