30 lines
825 B
JavaScript
30 lines
825 B
JavaScript
/* @flow */
|
|
|
|
declare var config: Object;
|
|
|
|
/**
|
|
* Builds and returns the room name.
|
|
*
|
|
* @returns {string}
|
|
*/
|
|
export default function getRoomName(): ?string {
|
|
const { getroomnode } = config;
|
|
const path = window.location.pathname;
|
|
let roomName;
|
|
|
|
// Determine the room node from the URL.
|
|
if (getroomnode && typeof getroomnode === 'function') {
|
|
roomName = getroomnode.call(config, path);
|
|
} else {
|
|
// Fall back to the default strategy of making assumptions about how the
|
|
// URL maps to the room (name). It currently assumes a deployment in
|
|
// which the last non-directory component of the path (name) is the
|
|
// room.
|
|
roomName
|
|
= path.substring(path.lastIndexOf('/') + 1).toLowerCase()
|
|
|| undefined;
|
|
}
|
|
|
|
return roomName;
|
|
}
|