@@ -77,7 +74,6 @@ class WelcomePage extends AbstractWelcomePage {
this._renderMain()
}
-
);
}
@@ -359,6 +355,43 @@ class WelcomePage extends AbstractWelcomePage {
return null;
}
+ /**
+ * Handles updating roomname.
+ *
+ * @private
+ * @returns {void}
+ **/
+ _onUpdateRoomname() {
+ this._updateRoomname();
+ }
+
+ /**
+ * Event handler for changing room name input from web.
+ *
+ * @inheritdoc
+ * @override
+ * @protected
+ */
+ _onRoomChange() {
+ super._onRoomChange(this.roomNameInput.value);
+ }
+
+ /**
+ * Handles 'keydown' event and initiate joining the room if 'return' button
+ * was pressed.
+ *
+ * @param {Event} event - Key down event object.
+ * @returns {void}
+ * @private
+ */
+ _onKeyDown(event) {
+ const RETURN_BUTTON_CODE = 13;
+
+ if (event.keyCode === RETURN_BUTTON_CODE) {
+ this._onJoin();
+ }
+ }
+
/**
* Renders the main part of this WelcomePage.
*
diff --git a/react/features/welcome/route.js b/react/features/welcome/route.js
index c5b2d7f29..ea7f6e5a6 100644
--- a/react/features/welcome/route.js
+++ b/react/features/welcome/route.js
@@ -1,11 +1,31 @@
+/* global APP */
import { RouteRegistry } from '../base/navigator';
-
+import { generateRoomWithoutSeparator } from '../base/util';
import { WelcomePage } from './components';
+
+/**
+ * Function that checks if welcome page is enabled and if it isn't
+ * redirects to randomly created conference.
+ *
+ * @param {Object} nextState - Next router state.
+ * @param {Function} replace - Function to redirect to another path.
+ * @returns {void}
+ */
+function onEnter(nextState, replace) {
+ if (!APP.settings.isWelcomePageEnabled()) {
+ const generatedRoomname = generateRoomWithoutSeparator();
+ const normalizedRoomname = generatedRoomname.toLowerCase();
+
+ replace(`/${normalizedRoomname}`);
+ }
+}
+
/**
* Register route for WelcomePage.
*/
RouteRegistry.register({
component: WelcomePage,
- path: '/'
+ path: '/',
+ onEnter
});