feat: safe decodeURIComponent
This commit is contained in:
parent
1fd326f980
commit
8bd0da886e
|
@ -11,6 +11,7 @@ import {
|
||||||
participantLeft
|
participantLeft
|
||||||
} from '../participants';
|
} from '../participants';
|
||||||
import { toState } from '../redux';
|
import { toState } from '../redux';
|
||||||
|
import { safeDecodeURIComponent } from '../util';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AVATAR_ID_COMMAND,
|
AVATAR_ID_COMMAND,
|
||||||
|
@ -163,7 +164,7 @@ export function getConferenceName(stateful: Function | Object): string {
|
||||||
|| subject
|
|| subject
|
||||||
|| callDisplayName
|
|| callDisplayName
|
||||||
|| (callee && callee.name)
|
|| (callee && callee.name)
|
||||||
|| _.startCase(decodeURIComponent(room));
|
|| _.startCase(safeDecodeURIComponent(room));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -373,6 +373,23 @@ function _standardURIToString(thiz: ?Object) {
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sometimes we receive strings that we don't know if already percent-encoded, or not, due to the
|
||||||
|
* various sources we get URLs or room names. This function encapsulates the decoding in a safe way.
|
||||||
|
*
|
||||||
|
* @param {string} text - The text to decode.
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
export function safeDecodeURIComponent(text: string) {
|
||||||
|
try {
|
||||||
|
return decodeURIComponent(text);
|
||||||
|
} catch (e) {
|
||||||
|
// The text wasn't encoded.
|
||||||
|
}
|
||||||
|
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attempts to return a {@code String} representation of a specific
|
* Attempts to return a {@code String} representation of a specific
|
||||||
* {@code Object} which is supposed to represent a URL. Obviously, if a
|
* {@code Object} which is supposed to represent a URL. Obviously, if a
|
||||||
|
|
|
@ -3,7 +3,7 @@ import {
|
||||||
getLocalizedDurationFormatter
|
getLocalizedDurationFormatter
|
||||||
} from '../base/i18n';
|
} from '../base/i18n';
|
||||||
import { NavigateSectionList } from '../base/react';
|
import { NavigateSectionList } from '../base/react';
|
||||||
import { parseURIString } from '../base/util';
|
import { parseURIString, safeDecodeURIComponent } from '../base/util';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a displayable list item of a recent list entry.
|
* Creates a displayable list item of a recent list entry.
|
||||||
|
@ -31,7 +31,7 @@ function toDisplayableItem(item, defaultServerURL, t) {
|
||||||
_toDurationString(item.duration),
|
_toDurationString(item.duration),
|
||||||
serverName
|
serverName
|
||||||
],
|
],
|
||||||
title: decodeURIComponent(location.room),
|
title: safeDecodeURIComponent(location.room),
|
||||||
url: item.conference
|
url: item.conference
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue