Move non-invite specific stuff to UserAddress
parent
bbcf7e1d9b
commit
81273ec855
|
@ -19,48 +19,11 @@ import PropTypes from 'prop-types';
|
||||||
import MatrixClientPeg from './MatrixClientPeg';
|
import MatrixClientPeg from './MatrixClientPeg';
|
||||||
import MultiInviter from './utils/MultiInviter';
|
import MultiInviter from './utils/MultiInviter';
|
||||||
import Modal from './Modal';
|
import Modal from './Modal';
|
||||||
|
import { getAddressType } from './UserAddress';
|
||||||
import createRoom from './createRoom';
|
import createRoom from './createRoom';
|
||||||
import sdk from './';
|
import sdk from './';
|
||||||
import { _t } from './languageHandler';
|
import { _t } from './languageHandler';
|
||||||
|
|
||||||
const emailRegex = /^\S+@\S+\.\S+$/;
|
|
||||||
|
|
||||||
const mxidRegex = /^@\S+:\S+$/
|
|
||||||
|
|
||||||
export const addressTypes = [
|
|
||||||
'mx', 'email',
|
|
||||||
];
|
|
||||||
|
|
||||||
// PropType definition for an object describing
|
|
||||||
// an address that can be invited to a room (which
|
|
||||||
// could be a third party identifier or a matrix ID)
|
|
||||||
// along with some additional information about the
|
|
||||||
// address / target.
|
|
||||||
export const UserAddressType = PropTypes.shape({
|
|
||||||
addressType: PropTypes.oneOf(addressTypes).isRequired,
|
|
||||||
address: PropTypes.string.isRequired,
|
|
||||||
displayName: PropTypes.string,
|
|
||||||
avatarMxc: PropTypes.string,
|
|
||||||
// true if the address is known to be a valid address (eg. is a real
|
|
||||||
// user we've seen) or false otherwise (eg. is just an address the
|
|
||||||
// user has entered)
|
|
||||||
isKnown: PropTypes.bool,
|
|
||||||
});
|
|
||||||
|
|
||||||
export function getAddressType(inputText) {
|
|
||||||
const isEmailAddress = emailRegex.test(inputText);
|
|
||||||
const isMatrixId = mxidRegex.test(inputText);
|
|
||||||
|
|
||||||
// sanity check the input for user IDs
|
|
||||||
if (isEmailAddress) {
|
|
||||||
return 'email';
|
|
||||||
} else if (isMatrixId) {
|
|
||||||
return 'mx';
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function inviteToRoom(roomId, addr) {
|
export function inviteToRoom(roomId, addr) {
|
||||||
const addrType = getAddressType(addr);
|
const addrType = getAddressType(addr);
|
||||||
|
|
||||||
|
|
|
@ -19,11 +19,10 @@ import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { _t } from '../../../languageHandler';
|
import { _t } from '../../../languageHandler';
|
||||||
import sdk from '../../../index';
|
import sdk from '../../../index';
|
||||||
import { getAddressType } from '../../../Invite';
|
|
||||||
import MatrixClientPeg from '../../../MatrixClientPeg';
|
import MatrixClientPeg from '../../../MatrixClientPeg';
|
||||||
import AccessibleButton from '../elements/AccessibleButton';
|
import AccessibleButton from '../elements/AccessibleButton';
|
||||||
import Promise from 'bluebird';
|
import Promise from 'bluebird';
|
||||||
import { addressTypes } from '../../../Invite.js';
|
import { addressTypes, getAddressType } from '../../../UserAddress.js';
|
||||||
|
|
||||||
const TRUNCATE_QUERY_LIST = 40;
|
const TRUNCATE_QUERY_LIST = 40;
|
||||||
const QUERY_USER_DIRECTORY_DEBOUNCE_MS = 200;
|
const QUERY_USER_DIRECTORY_DEBOUNCE_MS = 200;
|
||||||
|
|
|
@ -20,7 +20,7 @@ limitations under the License.
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import sdk from '../../../index';
|
import sdk from '../../../index';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { UserAddressType } from '../../../Invite';
|
import { UserAddressType } from '../../../UserAddress';
|
||||||
|
|
||||||
export default React.createClass({
|
export default React.createClass({
|
||||||
displayName: 'AddressSelector',
|
displayName: 'AddressSelector',
|
||||||
|
|
|
@ -20,7 +20,7 @@ import classNames from 'classnames';
|
||||||
import sdk from "../../../index";
|
import sdk from "../../../index";
|
||||||
import MatrixClientPeg from "../../../MatrixClientPeg";
|
import MatrixClientPeg from "../../../MatrixClientPeg";
|
||||||
import { _t } from '../../../languageHandler';
|
import { _t } from '../../../languageHandler';
|
||||||
import { UserAddressType } from '../../../Invite.js';
|
import { UserAddressType } from '../../../UserAddress.js';
|
||||||
|
|
||||||
|
|
||||||
export default React.createClass({
|
export default React.createClass({
|
||||||
|
|
|
@ -14,7 +14,8 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {getAddressType, inviteToRoom} from '../Invite';
|
import {getAddressType} from '../UserAddress';
|
||||||
|
import {inviteToRoom} from '../Invite';
|
||||||
import Promise from 'bluebird';
|
import Promise from 'bluebird';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue