Switch to importing most things from the main matrix-js-sdk export (#11406)
* Switch to importing most things from the main matrix-js-sdk export * fix imports * Iterate * Fix tests
This commit is contained in:
parent
0842559fb2
commit
ad73b0c16e
52 changed files with 262 additions and 277 deletions
201
.eslintrc.js
201
.eslintrc.js
|
@ -62,118 +62,6 @@ module.exports = {
|
||||||
name: "matrix-js-sdk/src/index",
|
name: "matrix-js-sdk/src/index",
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
message: "Please use matrix-js-sdk/src/matrix instead",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/typed-event-emitter",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/room",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/room-member",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/room-state",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/event",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/event-status",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/user",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/device",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/event-timeline",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/event-timeline-set",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/@types/partials",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/@types/event",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/client",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/search-result",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/poll",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/relations",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/http-api",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/@types/PushRules",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/@types/search",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/filter",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/webrtc/groupCall",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/service-types",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/sync",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/timeline-window",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/store/indexeddb",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/crypto/store/indexeddb-crypto-store",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/crypto/store/localStorage-crypto-store",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "matrix-js-sdk/src/models/thread",
|
|
||||||
message: "Please use matrix-js-sdk/src/matrix instead",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "matrix-react-sdk",
|
name: "matrix-react-sdk",
|
||||||
message: "Please use matrix-react-sdk/src/index instead",
|
message: "Please use matrix-react-sdk/src/index instead",
|
||||||
|
@ -185,8 +73,93 @@ module.exports = {
|
||||||
],
|
],
|
||||||
patterns: [
|
patterns: [
|
||||||
{
|
{
|
||||||
group: ["matrix-js-sdk/lib", "matrix-js-sdk/lib/", "matrix-js-sdk/lib/**"],
|
group: [
|
||||||
message: "Please use matrix-js-sdk/src/* instead",
|
"matrix-js-sdk/src/**",
|
||||||
|
"!matrix-js-sdk/src/matrix",
|
||||||
|
"matrix-js-sdk/lib",
|
||||||
|
"matrix-js-sdk/lib/",
|
||||||
|
"matrix-js-sdk/lib/**",
|
||||||
|
// XXX: Temporarily allow these as they are not available via the main export
|
||||||
|
"!matrix-js-sdk/src/logger",
|
||||||
|
"!matrix-js-sdk/src/errors",
|
||||||
|
"!matrix-js-sdk/src/utils",
|
||||||
|
"!matrix-js-sdk/src/version-support",
|
||||||
|
"!matrix-js-sdk/src/randomstring",
|
||||||
|
"!matrix-js-sdk/src/sliding-sync",
|
||||||
|
"!matrix-js-sdk/src/browser-index",
|
||||||
|
"!matrix-js-sdk/src/feature",
|
||||||
|
"!matrix-js-sdk/src/NamespacedValue",
|
||||||
|
"!matrix-js-sdk/src/ReEmitter",
|
||||||
|
"!matrix-js-sdk/src/event-mapper",
|
||||||
|
"!matrix-js-sdk/src/interactive-auth",
|
||||||
|
"!matrix-js-sdk/src/secret-storage",
|
||||||
|
"!matrix-js-sdk/src/room-hierarchy",
|
||||||
|
"!matrix-js-sdk/src/rendezvous",
|
||||||
|
"!matrix-js-sdk/src/rendezvous/transports",
|
||||||
|
"!matrix-js-sdk/src/rendezvous/channels",
|
||||||
|
"!matrix-js-sdk/src/indexeddb-worker",
|
||||||
|
"!matrix-js-sdk/src/pushprocessor",
|
||||||
|
"!matrix-js-sdk/src/extensible_events_v1",
|
||||||
|
"!matrix-js-sdk/src/extensible_events_v1/PollStartEvent",
|
||||||
|
"!matrix-js-sdk/src/extensible_events_v1/PollResponseEvent",
|
||||||
|
"!matrix-js-sdk/src/extensible_events_v1/PollEndEvent",
|
||||||
|
"!matrix-js-sdk/src/extensible_events_v1/InvalidEventError",
|
||||||
|
"!matrix-js-sdk/src/crypto-api",
|
||||||
|
"!matrix-js-sdk/src/crypto-api/verification",
|
||||||
|
"!matrix-js-sdk/src/crypto",
|
||||||
|
"!matrix-js-sdk/src/crypto/algorithms",
|
||||||
|
"!matrix-js-sdk/src/crypto/api",
|
||||||
|
"!matrix-js-sdk/src/crypto/aes",
|
||||||
|
"!matrix-js-sdk/src/crypto/backup",
|
||||||
|
"!matrix-js-sdk/src/crypto/olmlib",
|
||||||
|
"!matrix-js-sdk/src/crypto/crypto",
|
||||||
|
"!matrix-js-sdk/src/crypto/keybackup",
|
||||||
|
"!matrix-js-sdk/src/crypto/RoomList",
|
||||||
|
"!matrix-js-sdk/src/crypto/deviceinfo",
|
||||||
|
"!matrix-js-sdk/src/crypto/key_passphrase",
|
||||||
|
"!matrix-js-sdk/src/crypto/CrossSigning",
|
||||||
|
"!matrix-js-sdk/src/crypto/recoverykey",
|
||||||
|
"!matrix-js-sdk/src/crypto/dehydration",
|
||||||
|
"!matrix-js-sdk/src/crypto/verification",
|
||||||
|
"!matrix-js-sdk/src/crypto/verification/SAS",
|
||||||
|
"!matrix-js-sdk/src/crypto/verification/QRCode",
|
||||||
|
"!matrix-js-sdk/src/crypto/verification/request",
|
||||||
|
"!matrix-js-sdk/src/crypto/verification/request/VerificationRequest",
|
||||||
|
"!matrix-js-sdk/src/common-crypto",
|
||||||
|
"!matrix-js-sdk/src/common-crypto/CryptoBackend",
|
||||||
|
"!matrix-js-sdk/src/oidc",
|
||||||
|
"!matrix-js-sdk/src/oidc/discovery",
|
||||||
|
"!matrix-js-sdk/src/oidc/authorize",
|
||||||
|
"!matrix-js-sdk/src/oidc/validate",
|
||||||
|
"!matrix-js-sdk/src/oidc/error",
|
||||||
|
"!matrix-js-sdk/src/oidc/register",
|
||||||
|
"!matrix-js-sdk/src/webrtc",
|
||||||
|
"!matrix-js-sdk/src/webrtc/call",
|
||||||
|
"!matrix-js-sdk/src/webrtc/callFeed",
|
||||||
|
"!matrix-js-sdk/src/webrtc/mediaHandler",
|
||||||
|
"!matrix-js-sdk/src/webrtc/callEventTypes",
|
||||||
|
"!matrix-js-sdk/src/webrtc/callEventHandler",
|
||||||
|
"!matrix-js-sdk/src/webrtc/groupCallEventHandler",
|
||||||
|
"!matrix-js-sdk/src/models",
|
||||||
|
"!matrix-js-sdk/src/models/read-receipt",
|
||||||
|
"!matrix-js-sdk/src/models/relations-container",
|
||||||
|
"!matrix-js-sdk/src/models/related-relations",
|
||||||
|
"!matrix-js-sdk/src/@types",
|
||||||
|
"!matrix-js-sdk/src/@types/global",
|
||||||
|
"!matrix-js-sdk/src/@types/auth",
|
||||||
|
"!matrix-js-sdk/src/@types/beacon",
|
||||||
|
"!matrix-js-sdk/src/@types/threepids",
|
||||||
|
"!matrix-js-sdk/src/@types/polls",
|
||||||
|
"!matrix-js-sdk/src/@types/crypto",
|
||||||
|
"!matrix-js-sdk/src/@types/local_notifications",
|
||||||
|
"!matrix-js-sdk/src/@types/location",
|
||||||
|
"!matrix-js-sdk/src/@types/topic",
|
||||||
|
"!matrix-js-sdk/src/@types/registration",
|
||||||
|
"!matrix-js-sdk/src/@types/read_receipts",
|
||||||
|
"!matrix-js-sdk/src/@types/extensible_events",
|
||||||
|
"!matrix-js-sdk/src/@types/IIdentityServerProvider",
|
||||||
|
],
|
||||||
|
message: "Please use matrix-js-sdk/src/matrix instead",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
|
@ -18,12 +18,11 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { ReactNode } from "react";
|
import { ReactNode } from "react";
|
||||||
import { createClient, MatrixClient } from "matrix-js-sdk/src/matrix";
|
import { createClient, MatrixClient, SSOAction } from "matrix-js-sdk/src/matrix";
|
||||||
import { InvalidStoreError } from "matrix-js-sdk/src/errors";
|
import { InvalidStoreError } from "matrix-js-sdk/src/errors";
|
||||||
import { decryptAES, encryptAES, IEncryptedPayload } from "matrix-js-sdk/src/crypto/aes";
|
import { decryptAES, encryptAES, IEncryptedPayload } from "matrix-js-sdk/src/crypto/aes";
|
||||||
import { QueryDict } from "matrix-js-sdk/src/utils";
|
import { QueryDict } from "matrix-js-sdk/src/utils";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { SSOAction } from "matrix-js-sdk/src/@types/auth";
|
|
||||||
import { MINIMUM_MATRIX_VERSION } from "matrix-js-sdk/src/version-support";
|
import { MINIMUM_MATRIX_VERSION } from "matrix-js-sdk/src/version-support";
|
||||||
|
|
||||||
import { IMatrixClientCreds, MatrixClientPeg } from "./MatrixClientPeg";
|
import { IMatrixClientCreds, MatrixClientPeg } from "./MatrixClientPeg";
|
||||||
|
|
|
@ -15,9 +15,9 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { createClient, MatrixClient } from "matrix-js-sdk/src/matrix";
|
import { createClient, MatrixClient, LoginFlow } from "matrix-js-sdk/src/matrix";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { DELEGATED_OIDC_COMPATIBILITY, ILoginFlow, LoginFlow, LoginRequest } from "matrix-js-sdk/src/@types/auth";
|
import { DELEGATED_OIDC_COMPATIBILITY, ILoginFlow, LoginRequest } from "matrix-js-sdk/src/@types/auth";
|
||||||
|
|
||||||
import { IMatrixClientCreds } from "./MatrixClientPeg";
|
import { IMatrixClientCreds } from "./MatrixClientPeg";
|
||||||
import SecurityCustomisations from "./customisations/Security";
|
import SecurityCustomisations from "./customisations/Security";
|
||||||
|
|
|
@ -26,8 +26,8 @@ import {
|
||||||
EventTimelineSet,
|
EventTimelineSet,
|
||||||
IStartClientOpts,
|
IStartClientOpts,
|
||||||
MatrixClient,
|
MatrixClient,
|
||||||
|
MemoryStore,
|
||||||
} from "matrix-js-sdk/src/matrix";
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { MemoryStore } from "matrix-js-sdk/src/store/memory";
|
|
||||||
import * as utils from "matrix-js-sdk/src/utils";
|
import * as utils from "matrix-js-sdk/src/utils";
|
||||||
import { verificationMethods } from "matrix-js-sdk/src/crypto";
|
import { verificationMethods } from "matrix-js-sdk/src/crypto";
|
||||||
import { SHOW_QR_CODE_METHOD } from "matrix-js-sdk/src/crypto/verification/QRCode";
|
import { SHOW_QR_CODE_METHOD } from "matrix-js-sdk/src/crypto/verification/QRCode";
|
||||||
|
|
|
@ -18,8 +18,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import { User, IContent, Direction } from "matrix-js-sdk/src/matrix";
|
import { User, IContent, Direction, ContentHelpers } from "matrix-js-sdk/src/matrix";
|
||||||
import * as ContentHelpers from "matrix-js-sdk/src/content-helpers";
|
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { MRoomTopicEventContent } from "matrix-js-sdk/src/@types/topic";
|
import { MRoomTopicEventContent } from "matrix-js-sdk/src/@types/topic";
|
||||||
|
|
||||||
|
|
|
@ -20,11 +20,10 @@ import FileSaver from "file-saver";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { IKeyBackupInfo } from "matrix-js-sdk/src/crypto/keybackup";
|
import { IKeyBackupInfo } from "matrix-js-sdk/src/crypto/keybackup";
|
||||||
import { TrustInfo } from "matrix-js-sdk/src/crypto/backup";
|
import { TrustInfo } from "matrix-js-sdk/src/crypto/backup";
|
||||||
import { CrossSigningKeys, IAuthDict, MatrixError, UIAFlow } from "matrix-js-sdk/src/matrix";
|
import { CrossSigningKeys, IAuthDict, MatrixError, UIAFlow, UIAResponse } from "matrix-js-sdk/src/matrix";
|
||||||
import { IRecoveryKey } from "matrix-js-sdk/src/crypto/api";
|
import { IRecoveryKey } from "matrix-js-sdk/src/crypto/api";
|
||||||
import { CryptoEvent } from "matrix-js-sdk/src/crypto";
|
import { CryptoEvent } from "matrix-js-sdk/src/crypto";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { UIAResponse } from "matrix-js-sdk/src/@types/uia";
|
|
||||||
|
|
||||||
import { MatrixClientPeg } from "../../../../MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../../MatrixClientPeg";
|
||||||
import { _t, _td } from "../../../../languageHandler";
|
import { _t, _td } from "../../../../languageHandler";
|
||||||
|
|
|
@ -38,9 +38,10 @@ import {
|
||||||
RoomType,
|
RoomType,
|
||||||
GuestAccess,
|
GuestAccess,
|
||||||
HistoryVisibility,
|
HistoryVisibility,
|
||||||
|
HierarchyRelation,
|
||||||
|
HierarchyRoom,
|
||||||
} from "matrix-js-sdk/src/matrix";
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
|
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
|
||||||
import { IHierarchyRelation, IHierarchyRoom } from "matrix-js-sdk/src/@types/spaces";
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { sortBy, uniqBy } from "lodash";
|
import { sortBy, uniqBy } from "lodash";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
|
@ -85,7 +86,7 @@ interface IProps {
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ITileProps {
|
interface ITileProps {
|
||||||
room: IHierarchyRoom;
|
room: HierarchyRoom;
|
||||||
suggested?: boolean;
|
suggested?: boolean;
|
||||||
selected?: boolean;
|
selected?: boolean;
|
||||||
numChildRooms?: number;
|
numChildRooms?: number;
|
||||||
|
@ -429,8 +430,8 @@ export const joinRoom = async (cli: MatrixClient, hierarchy: RoomHierarchy, room
|
||||||
};
|
};
|
||||||
|
|
||||||
interface IHierarchyLevelProps {
|
interface IHierarchyLevelProps {
|
||||||
root: IHierarchyRoom;
|
root: HierarchyRoom;
|
||||||
roomSet: Set<IHierarchyRoom>;
|
roomSet: Set<HierarchyRoom>;
|
||||||
hierarchy: RoomHierarchy;
|
hierarchy: RoomHierarchy;
|
||||||
parents: Set<string>;
|
parents: Set<string>;
|
||||||
selectedMap?: Map<string, Set<string>>;
|
selectedMap?: Map<string, Set<string>>;
|
||||||
|
@ -439,7 +440,7 @@ interface IHierarchyLevelProps {
|
||||||
onToggleClick?(parentId: string, childId: string): void;
|
onToggleClick?(parentId: string, childId: string): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const toLocalRoom = (cli: MatrixClient, room: IHierarchyRoom, hierarchy: RoomHierarchy): IHierarchyRoom => {
|
export const toLocalRoom = (cli: MatrixClient, room: HierarchyRoom, hierarchy: RoomHierarchy): HierarchyRoom => {
|
||||||
const history = cli.getRoomUpgradeHistory(
|
const history = cli.getRoomUpgradeHistory(
|
||||||
room.room_id,
|
room.room_id,
|
||||||
true,
|
true,
|
||||||
|
@ -497,14 +498,14 @@ export const HierarchyLevel: React.FC<IHierarchyLevelProps> = ({
|
||||||
});
|
});
|
||||||
|
|
||||||
const [subspaces, childRooms] = sortedChildren.reduce(
|
const [subspaces, childRooms] = sortedChildren.reduce(
|
||||||
(result, ev: IHierarchyRelation) => {
|
(result, ev: HierarchyRelation) => {
|
||||||
const room = hierarchy.roomMap.get(ev.state_key);
|
const room = hierarchy.roomMap.get(ev.state_key);
|
||||||
if (room && roomSet.has(room)) {
|
if (room && roomSet.has(room)) {
|
||||||
result[room.room_type === RoomType.Space ? 0 : 1].push(toLocalRoom(cli, room, hierarchy));
|
result[room.room_type === RoomType.Space ? 0 : 1].push(toLocalRoom(cli, room, hierarchy));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
[[] as IHierarchyRoom[], [] as IHierarchyRoom[]],
|
[[] as HierarchyRoom[], [] as HierarchyRoom[]],
|
||||||
);
|
);
|
||||||
|
|
||||||
const newParents = new Set(parents).add(root.room_id);
|
const newParents = new Set(parents).add(root.room_id);
|
||||||
|
@ -564,12 +565,12 @@ export const useRoomHierarchy = (
|
||||||
space: Room,
|
space: Room,
|
||||||
): {
|
): {
|
||||||
loading: boolean;
|
loading: boolean;
|
||||||
rooms?: IHierarchyRoom[];
|
rooms?: HierarchyRoom[];
|
||||||
hierarchy?: RoomHierarchy;
|
hierarchy?: RoomHierarchy;
|
||||||
error?: Error;
|
error?: Error;
|
||||||
loadMore(pageSize?: number): Promise<void>;
|
loadMore(pageSize?: number): Promise<void>;
|
||||||
} => {
|
} => {
|
||||||
const [rooms, setRooms] = useState<IHierarchyRoom[]>([]);
|
const [rooms, setRooms] = useState<HierarchyRoom[]>([]);
|
||||||
const [hierarchy, setHierarchy] = useState<RoomHierarchy>();
|
const [hierarchy, setHierarchy] = useState<RoomHierarchy>();
|
||||||
const [error, setError] = useState<Error | undefined>();
|
const [error, setError] = useState<Error | undefined>();
|
||||||
|
|
||||||
|
@ -760,7 +761,7 @@ const SpaceHierarchy: React.FC<IProps> = ({ space, initialText = "", showRoom, a
|
||||||
|
|
||||||
const { loading, rooms, hierarchy, loadMore, error: hierarchyError } = useRoomHierarchy(space);
|
const { loading, rooms, hierarchy, loadMore, error: hierarchyError } = useRoomHierarchy(space);
|
||||||
|
|
||||||
const filteredRoomSet = useMemo<Set<IHierarchyRoom>>(() => {
|
const filteredRoomSet = useMemo<Set<HierarchyRoom>>(() => {
|
||||||
if (!rooms?.length || !hierarchy) return new Set();
|
if (!rooms?.length || !hierarchy) return new Set();
|
||||||
const lcQuery = query.toLowerCase().trim();
|
const lcQuery = query.toLowerCase().trim();
|
||||||
if (!lcQuery) return new Set(rooms);
|
if (!lcQuery) return new Set(rooms);
|
||||||
|
|
|
@ -17,7 +17,7 @@ limitations under the License.
|
||||||
import React, { ReactNode } from "react";
|
import React, { ReactNode } from "react";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { ISSOFlow, SSOAction } from "matrix-js-sdk/src/@types/auth";
|
import { SSOFlow, SSOAction } from "matrix-js-sdk/src/matrix";
|
||||||
|
|
||||||
import { _t, _td, UserFriendlyError } from "../../../languageHandler";
|
import { _t, _td, UserFriendlyError } from "../../../languageHandler";
|
||||||
import Login, { ClientLoginFlow, OidcNativeFlow } from "../../../Login";
|
import Login, { ClientLoginFlow, OidcNativeFlow } from "../../../Login";
|
||||||
|
@ -487,7 +487,7 @@ export default class LoginComponent extends React.PureComponent<IProps, IState>
|
||||||
};
|
};
|
||||||
|
|
||||||
private renderSsoStep = (loginType: "cas" | "sso"): JSX.Element => {
|
private renderSsoStep = (loginType: "cas" | "sso"): JSX.Element => {
|
||||||
const flow = this.state.flows?.find((flow) => flow.type === "m.login." + loginType) as ISSOFlow;
|
const flow = this.state.flows?.find((flow) => flow.type === "m.login." + loginType) as SSOFlow;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SSOButtons
|
<SSOButtons
|
||||||
|
|
|
@ -24,11 +24,12 @@ import {
|
||||||
IRegisterRequestParams,
|
IRegisterRequestParams,
|
||||||
IRequestTokenResponse,
|
IRequestTokenResponse,
|
||||||
MatrixClient,
|
MatrixClient,
|
||||||
|
SSOFlow,
|
||||||
|
SSOAction,
|
||||||
} from "matrix-js-sdk/src/matrix";
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import React, { Fragment, ReactNode } from "react";
|
import React, { Fragment, ReactNode } from "react";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { ISSOFlow, SSOAction } from "matrix-js-sdk/src/@types/auth";
|
|
||||||
import { RegisterResponse } from "matrix-js-sdk/src/@types/registration";
|
import { RegisterResponse } from "matrix-js-sdk/src/@types/registration";
|
||||||
|
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
|
@ -121,7 +122,7 @@ interface IState {
|
||||||
differentLoggedInUserId?: string;
|
differentLoggedInUserId?: string;
|
||||||
// the SSO flow definition, this is fetched from /login as that's the only
|
// the SSO flow definition, this is fetched from /login as that's the only
|
||||||
// place it is exposed.
|
// place it is exposed.
|
||||||
ssoFlow?: ISSOFlow;
|
ssoFlow?: SSOFlow;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class Registration extends React.Component<IProps, IState> {
|
export default class Registration extends React.Component<IProps, IState> {
|
||||||
|
@ -219,11 +220,11 @@ export default class Registration extends React.Component<IProps, IState> {
|
||||||
this.loginLogic.setHomeserverUrl(hsUrl);
|
this.loginLogic.setHomeserverUrl(hsUrl);
|
||||||
this.loginLogic.setIdentityServerUrl(isUrl);
|
this.loginLogic.setIdentityServerUrl(isUrl);
|
||||||
|
|
||||||
let ssoFlow: ISSOFlow | undefined;
|
let ssoFlow: SSOFlow | undefined;
|
||||||
try {
|
try {
|
||||||
const loginFlows = await this.loginLogic.getFlows();
|
const loginFlows = await this.loginLogic.getFlows();
|
||||||
if (serverConfig !== this.latestServerConfig) return; // discard, serverConfig changed from under us
|
if (serverConfig !== this.latestServerConfig) return; // discard, serverConfig changed from under us
|
||||||
ssoFlow = loginFlows.find((f) => f.type === "m.login.sso" || f.type === "m.login.cas") as ISSOFlow;
|
ssoFlow = loginFlows.find((f) => f.type === "m.login.sso" || f.type === "m.login.cas") as SSOFlow;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (serverConfig !== this.latestServerConfig) return; // discard, serverConfig changed from under us
|
if (serverConfig !== this.latestServerConfig) return; // discard, serverConfig changed from under us
|
||||||
logger.error("Failed to get login flows to check for SSO support", e);
|
logger.error("Failed to get login flows to check for SSO support", e);
|
||||||
|
|
|
@ -17,8 +17,7 @@ limitations under the License.
|
||||||
import React, { ChangeEvent, SyntheticEvent } from "react";
|
import React, { ChangeEvent, SyntheticEvent } from "react";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { Optional } from "matrix-events-sdk";
|
import { Optional } from "matrix-events-sdk";
|
||||||
import { ISSOFlow, LoginFlow, SSOAction } from "matrix-js-sdk/src/@types/auth";
|
import { SSOFlow, LoginFlow, SSOAction, MatrixError } from "matrix-js-sdk/src/matrix";
|
||||||
import { MatrixError } from "matrix-js-sdk/src/matrix";
|
|
||||||
|
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
import dis from "../../../dispatcher/dispatcher";
|
import dis from "../../../dispatcher/dispatcher";
|
||||||
|
@ -257,7 +256,7 @@ export default class SoftLogout extends React.Component<IProps, IState> {
|
||||||
|
|
||||||
private renderSsoForm(introText: Optional<string>): JSX.Element {
|
private renderSsoForm(introText: Optional<string>): JSX.Element {
|
||||||
const loginType = this.state.loginView === LoginView.CAS ? "cas" : "sso";
|
const loginType = this.state.loginView === LoginView.CAS ? "cas" : "sso";
|
||||||
const flow = this.state.flows.find((flow) => flow.type === "m.login." + loginType) as ISSOFlow;
|
const flow = this.state.flows.find((flow) => flow.type === "m.login." + loginType) as SSOFlow;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -15,8 +15,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { HTMLProps, useContext } from "react";
|
import React, { HTMLProps, useContext } from "react";
|
||||||
import { Beacon, BeaconEvent } from "matrix-js-sdk/src/matrix";
|
import { Beacon, BeaconEvent, LocationAssetType } from "matrix-js-sdk/src/matrix";
|
||||||
import { LocationAssetType } from "matrix-js-sdk/src/@types/location";
|
|
||||||
|
|
||||||
import MatrixClientContext from "../../../contexts/MatrixClientContext";
|
import MatrixClientContext from "../../../contexts/MatrixClientContext";
|
||||||
import { useEventEmitterState } from "../../../hooks/useEventEmitter";
|
import { useEventEmitterState } from "../../../hooks/useEventEmitter";
|
||||||
|
|
|
@ -16,8 +16,7 @@ limitations under the License.
|
||||||
|
|
||||||
import React, { ReactNode, useContext } from "react";
|
import React, { ReactNode, useContext } from "react";
|
||||||
import * as maplibregl from "maplibre-gl";
|
import * as maplibregl from "maplibre-gl";
|
||||||
import { Beacon, BeaconEvent } from "matrix-js-sdk/src/matrix";
|
import { Beacon, BeaconEvent, LocationAssetType } from "matrix-js-sdk/src/matrix";
|
||||||
import { LocationAssetType } from "matrix-js-sdk/src/@types/location";
|
|
||||||
|
|
||||||
import MatrixClientContext from "../../../contexts/MatrixClientContext";
|
import MatrixClientContext from "../../../contexts/MatrixClientContext";
|
||||||
import { useEventEmitterState } from "../../../hooks/useEventEmitter";
|
import { useEventEmitterState } from "../../../hooks/useEventEmitter";
|
||||||
|
|
|
@ -15,8 +15,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useContext } from "react";
|
import React, { useContext } from "react";
|
||||||
import { Beacon } from "matrix-js-sdk/src/matrix";
|
import { Beacon, LocationAssetType } from "matrix-js-sdk/src/matrix";
|
||||||
import { LocationAssetType } from "matrix-js-sdk/src/@types/location";
|
|
||||||
|
|
||||||
import MatrixClientContext from "../../../contexts/MatrixClientContext";
|
import MatrixClientContext from "../../../contexts/MatrixClientContext";
|
||||||
import BeaconStatus from "./BeaconStatus";
|
import BeaconStatus from "./BeaconStatus";
|
||||||
|
|
|
@ -15,8 +15,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useContext } from "react";
|
import React, { useContext } from "react";
|
||||||
import { Room, Beacon } from "matrix-js-sdk/src/matrix";
|
import { Room, Beacon, LocationAssetType } from "matrix-js-sdk/src/matrix";
|
||||||
import { LocationAssetType } from "matrix-js-sdk/src/@types/location";
|
|
||||||
|
|
||||||
import { OwnBeaconStore, OwnBeaconStoreEvent } from "../../../stores/OwnBeaconStore";
|
import { OwnBeaconStore, OwnBeaconStoreEvent } from "../../../stores/OwnBeaconStore";
|
||||||
import { useEventEmitterState } from "../../../hooks/useEventEmitter";
|
import { useEventEmitterState } from "../../../hooks/useEventEmitter";
|
||||||
|
|
|
@ -15,7 +15,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { BeaconLocationState } from "matrix-js-sdk/src/content-helpers";
|
import { ContentHelpers } from "matrix-js-sdk/src/matrix";
|
||||||
|
|
||||||
import { Icon as ExternalLinkIcon } from "../../../../res/img/external-link.svg";
|
import { Icon as ExternalLinkIcon } from "../../../../res/img/external-link.svg";
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
|
@ -24,7 +24,7 @@ import CopyableText from "../elements/CopyableText";
|
||||||
import TooltipTarget from "../elements/TooltipTarget";
|
import TooltipTarget from "../elements/TooltipTarget";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
latestLocationState?: BeaconLocationState;
|
latestLocationState?: ContentHelpers.BeaconLocationState;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ShareLatestLocation: React.FC<Props> = ({ latestLocationState }) => {
|
const ShareLatestLocation: React.FC<Props> = ({ latestLocationState }) => {
|
||||||
|
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { BeaconLocationState } from "matrix-js-sdk/src/content-helpers";
|
import { ContentHelpers } from "matrix-js-sdk/src/matrix";
|
||||||
|
|
||||||
export enum BeaconDisplayStatus {
|
export enum BeaconDisplayStatus {
|
||||||
Loading = "Loading",
|
Loading = "Loading",
|
||||||
|
@ -24,7 +24,7 @@ export enum BeaconDisplayStatus {
|
||||||
}
|
}
|
||||||
export const getBeaconDisplayStatus = (
|
export const getBeaconDisplayStatus = (
|
||||||
isLive: boolean,
|
isLive: boolean,
|
||||||
latestLocationState?: BeaconLocationState,
|
latestLocationState?: ContentHelpers.BeaconLocationState,
|
||||||
error?: Error,
|
error?: Error,
|
||||||
waitingToStart?: boolean,
|
waitingToStart?: boolean,
|
||||||
): BeaconDisplayStatus => {
|
): BeaconDisplayStatus => {
|
||||||
|
|
|
@ -16,9 +16,16 @@ limitations under the License.
|
||||||
|
|
||||||
import React, { useEffect, useMemo, useState } from "react";
|
import React, { useEffect, useMemo, useState } from "react";
|
||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import { IContent, MatrixEvent, Room, RoomMember, EventType, MatrixClient } from "matrix-js-sdk/src/matrix";
|
import {
|
||||||
|
IContent,
|
||||||
|
MatrixEvent,
|
||||||
|
Room,
|
||||||
|
RoomMember,
|
||||||
|
EventType,
|
||||||
|
MatrixClient,
|
||||||
|
ContentHelpers,
|
||||||
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { ILocationContent, LocationAssetType, M_TIMESTAMP } from "matrix-js-sdk/src/@types/location";
|
import { ILocationContent, LocationAssetType, M_TIMESTAMP } from "matrix-js-sdk/src/@types/location";
|
||||||
import { makeLocationContent } from "matrix-js-sdk/src/content-helpers";
|
|
||||||
import { M_BEACON } from "matrix-js-sdk/src/@types/beacon";
|
import { M_BEACON } from "matrix-js-sdk/src/@types/beacon";
|
||||||
|
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
|
@ -176,7 +183,7 @@ const transformEvent = (event: MatrixEvent): { type: string; content: IContent }
|
||||||
type,
|
type,
|
||||||
content: {
|
content: {
|
||||||
...content,
|
...content,
|
||||||
...makeLocationContent(
|
...ContentHelpers.makeLocationContent(
|
||||||
undefined, // text
|
undefined, // text
|
||||||
geoUri,
|
geoUri,
|
||||||
timestamp || Date.now(),
|
timestamp || Date.now(),
|
||||||
|
|
|
@ -17,9 +17,8 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { MatrixClient } from "matrix-js-sdk/src/matrix";
|
import { MatrixClient, UIAResponse } from "matrix-js-sdk/src/matrix";
|
||||||
import { AuthType } from "matrix-js-sdk/src/interactive-auth";
|
import { AuthType } from "matrix-js-sdk/src/interactive-auth";
|
||||||
import { UIAResponse } from "matrix-js-sdk/src/@types/uia";
|
|
||||||
|
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
import AccessibleButton from "../elements/AccessibleButton";
|
import AccessibleButton from "../elements/AccessibleButton";
|
||||||
|
|
|
@ -15,7 +15,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { ChangeEvent, createRef, SyntheticEvent } from "react";
|
import React, { ChangeEvent, createRef, SyntheticEvent } from "react";
|
||||||
import { AutoDiscovery } from "matrix-js-sdk/src/autodiscovery";
|
import { AutoDiscovery } from "matrix-js-sdk/src/matrix";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
|
|
||||||
import AutoDiscoveryUtils from "../../../utils/AutoDiscoveryUtils";
|
import AutoDiscoveryUtils from "../../../utils/AutoDiscoveryUtils";
|
||||||
|
|
|
@ -16,9 +16,8 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { CrossSigningKeys, AuthDict, MatrixError, UIAFlow } from "matrix-js-sdk/src/matrix";
|
import { CrossSigningKeys, AuthDict, MatrixError, UIAFlow, UIAResponse } from "matrix-js-sdk/src/matrix";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { UIAResponse } from "matrix-js-sdk/src/@types/uia";
|
|
||||||
|
|
||||||
import { MatrixClientPeg } from "../../../../MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../../MatrixClientPeg";
|
||||||
import { _t } from "../../../../languageHandler";
|
import { _t } from "../../../../languageHandler";
|
||||||
|
|
|
@ -17,8 +17,14 @@ limitations under the License.
|
||||||
import { WebSearch as WebSearchEvent } from "@matrix-org/analytics-events/types/typescript/WebSearch";
|
import { WebSearch as WebSearchEvent } from "@matrix-org/analytics-events/types/typescript/WebSearch";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { capitalize, sum } from "lodash";
|
import { capitalize, sum } from "lodash";
|
||||||
import { IHierarchyRoom } from "matrix-js-sdk/src/@types/spaces";
|
import {
|
||||||
import { IPublicRoomsChunkRoom, MatrixClient, RoomMember, RoomType, Room } from "matrix-js-sdk/src/matrix";
|
IPublicRoomsChunkRoom,
|
||||||
|
MatrixClient,
|
||||||
|
RoomMember,
|
||||||
|
RoomType,
|
||||||
|
Room,
|
||||||
|
HierarchyRoom,
|
||||||
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { normalize } from "matrix-js-sdk/src/utils";
|
import { normalize } from "matrix-js-sdk/src/utils";
|
||||||
import React, { ChangeEvent, RefObject, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
import React, { ChangeEvent, RefObject, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
||||||
import sanitizeHtml from "sanitize-html";
|
import sanitizeHtml from "sanitize-html";
|
||||||
|
@ -825,7 +831,7 @@ const SpotlightDialog: React.FC<IProps> = ({ initialText = "", initialFilter = n
|
||||||
</h4>
|
</h4>
|
||||||
<div>
|
<div>
|
||||||
{spaceResults.slice(0, SECTION_LIMIT).map(
|
{spaceResults.slice(0, SECTION_LIMIT).map(
|
||||||
(room: IHierarchyRoom): JSX.Element => (
|
(room: HierarchyRoom): JSX.Element => (
|
||||||
<Option
|
<Option
|
||||||
id={`mx_SpotlightDialog_button_result_${room.room_id}`}
|
id={`mx_SpotlightDialog_button_result_${room.room_id}`}
|
||||||
key={room.room_id}
|
key={room.room_id}
|
||||||
|
|
|
@ -17,15 +17,9 @@ limitations under the License.
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { chunk } from "lodash";
|
import { chunk } from "lodash";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { MatrixClient } from "matrix-js-sdk/src/matrix";
|
import { MatrixClient, IdentityProviderBrand, SSOFlow, SSOAction } from "matrix-js-sdk/src/matrix";
|
||||||
import { Signup } from "@matrix-org/analytics-events/types/typescript/Signup";
|
import { Signup } from "@matrix-org/analytics-events/types/typescript/Signup";
|
||||||
import {
|
import { IIdentityProvider, DELEGATED_OIDC_COMPATIBILITY } from "matrix-js-sdk/src/@types/auth";
|
||||||
IdentityProviderBrand,
|
|
||||||
IIdentityProvider,
|
|
||||||
ISSOFlow,
|
|
||||||
DELEGATED_OIDC_COMPATIBILITY,
|
|
||||||
SSOAction,
|
|
||||||
} from "matrix-js-sdk/src/@types/auth";
|
|
||||||
|
|
||||||
import PlatformPeg from "../../../PlatformPeg";
|
import PlatformPeg from "../../../PlatformPeg";
|
||||||
import AccessibleButton from "./AccessibleButton";
|
import AccessibleButton from "./AccessibleButton";
|
||||||
|
@ -147,7 +141,7 @@ const SSOButton: React.FC<ISSOButtonProps> = ({
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
matrixClient: MatrixClient;
|
matrixClient: MatrixClient;
|
||||||
flow: ISSOFlow;
|
flow: SSOFlow;
|
||||||
loginType: "sso" | "cas";
|
loginType: "sso" | "cas";
|
||||||
fragmentAfterLogin?: string;
|
fragmentAfterLogin?: string;
|
||||||
primary?: boolean;
|
primary?: boolean;
|
||||||
|
|
|
@ -14,10 +14,16 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { MatrixClient, IContent, IEventRelation, MatrixError, THREAD_RELATION_TYPE } from "matrix-js-sdk/src/matrix";
|
import {
|
||||||
import { makeLocationContent, makeBeaconInfoContent } from "matrix-js-sdk/src/content-helpers";
|
MatrixClient,
|
||||||
|
IContent,
|
||||||
|
IEventRelation,
|
||||||
|
MatrixError,
|
||||||
|
THREAD_RELATION_TYPE,
|
||||||
|
ContentHelpers,
|
||||||
|
LocationAssetType,
|
||||||
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { LocationAssetType } from "matrix-js-sdk/src/@types/location";
|
|
||||||
|
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
import Modal from "../../../Modal";
|
import Modal from "../../../Modal";
|
||||||
|
@ -109,7 +115,7 @@ export const shareLiveLocation =
|
||||||
try {
|
try {
|
||||||
await OwnBeaconStore.instance.createLiveBeacon(
|
await OwnBeaconStore.instance.createLiveBeacon(
|
||||||
roomId,
|
roomId,
|
||||||
makeBeaconInfoContent(
|
ContentHelpers.makeBeaconInfoContent(
|
||||||
timeout ?? DEFAULT_LIVE_DURATION,
|
timeout ?? DEFAULT_LIVE_DURATION,
|
||||||
true /* isLive */,
|
true /* isLive */,
|
||||||
description,
|
description,
|
||||||
|
@ -134,7 +140,13 @@ export const shareLocation =
|
||||||
try {
|
try {
|
||||||
const threadId = (relation?.rel_type === THREAD_RELATION_TYPE.name && relation?.event_id) || null;
|
const threadId = (relation?.rel_type === THREAD_RELATION_TYPE.name && relation?.event_id) || null;
|
||||||
const assetType = shareType === LocationShareType.Pin ? LocationAssetType.Pin : LocationAssetType.Self;
|
const assetType = shareType === LocationShareType.Pin ? LocationAssetType.Pin : LocationAssetType.Self;
|
||||||
const content = makeLocationContent(undefined, uri, timestamp, undefined, assetType) as IContent;
|
const content = ContentHelpers.makeLocationContent(
|
||||||
|
undefined,
|
||||||
|
uri,
|
||||||
|
timestamp,
|
||||||
|
undefined,
|
||||||
|
assetType,
|
||||||
|
) as IContent;
|
||||||
await doMaybeLocalRoomAction(
|
await doMaybeLocalRoomAction(
|
||||||
roomId,
|
roomId,
|
||||||
(actualRoomId: string) => client.sendMessage(actualRoomId, threadId, content),
|
(actualRoomId: string) => client.sendMessage(actualRoomId, threadId, content),
|
||||||
|
|
|
@ -23,8 +23,8 @@ import {
|
||||||
MatrixClient,
|
MatrixClient,
|
||||||
RelationType,
|
RelationType,
|
||||||
IRedactOpts,
|
IRedactOpts,
|
||||||
|
ContentHelpers,
|
||||||
} from "matrix-js-sdk/src/matrix";
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { BeaconLocationState } from "matrix-js-sdk/src/content-helpers";
|
|
||||||
import { randomString } from "matrix-js-sdk/src/randomstring";
|
import { randomString } from "matrix-js-sdk/src/randomstring";
|
||||||
import { M_BEACON } from "matrix-js-sdk/src/@types/beacon";
|
import { M_BEACON } from "matrix-js-sdk/src/@types/beacon";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
@ -51,7 +51,7 @@ const useBeaconState = (
|
||||||
): {
|
): {
|
||||||
beacon?: Beacon;
|
beacon?: Beacon;
|
||||||
description?: string;
|
description?: string;
|
||||||
latestLocationState?: BeaconLocationState;
|
latestLocationState?: ContentHelpers.BeaconLocationState;
|
||||||
isLive?: boolean;
|
isLive?: boolean;
|
||||||
waitingToStart?: boolean;
|
waitingToStart?: boolean;
|
||||||
} => {
|
} => {
|
||||||
|
|
|
@ -15,7 +15,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { ComponentProps, lazy, Suspense } from "react";
|
import React, { ComponentProps, lazy, Suspense } from "react";
|
||||||
import { ISendEventResponse } from "matrix-js-sdk/src/@types/requests";
|
import { ISendEventResponse } from "matrix-js-sdk/src/matrix";
|
||||||
|
|
||||||
// we need to import the types for TS, but do not import the sendMessage
|
// we need to import the types for TS, but do not import the sendMessage
|
||||||
// function to avoid importing from "@matrix-org/matrix-wysiwyg"
|
// function to avoid importing from "@matrix-org/matrix-wysiwyg"
|
||||||
|
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { ISendEventResponse } from "matrix-js-sdk/src/@types/requests";
|
import { ISendEventResponse } from "matrix-js-sdk/src/matrix";
|
||||||
import { useCallback, useState } from "react";
|
import { useCallback, useState } from "react";
|
||||||
|
|
||||||
import { useMatrixClientContext } from "../../../../../contexts/MatrixClientContext";
|
import { useMatrixClientContext } from "../../../../../contexts/MatrixClientContext";
|
||||||
|
|
|
@ -26,8 +26,14 @@ import React, {
|
||||||
ReactNode,
|
ReactNode,
|
||||||
} from "react";
|
} from "react";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { RoomType, HistoryVisibility, Preset, Visibility, MatrixClient } from "matrix-js-sdk/src/matrix";
|
import {
|
||||||
import { ICreateRoomOpts } from "matrix-js-sdk/src/@types/requests";
|
RoomType,
|
||||||
|
HistoryVisibility,
|
||||||
|
Preset,
|
||||||
|
Visibility,
|
||||||
|
MatrixClient,
|
||||||
|
ICreateRoomOpts,
|
||||||
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
|
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
|
|
|
@ -15,7 +15,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { JoinedRoom as JoinedRoomEvent } from "@matrix-org/analytics-events/types/typescript/JoinedRoom";
|
import { JoinedRoom as JoinedRoomEvent } from "@matrix-org/analytics-events/types/typescript/JoinedRoom";
|
||||||
import { IJoinRoomOpts } from "matrix-js-sdk/src/@types/requests";
|
import { IJoinRoomOpts } from "matrix-js-sdk/src/matrix";
|
||||||
|
|
||||||
import { ActionPayload } from "../payloads";
|
import { ActionPayload } from "../payloads";
|
||||||
import { Action } from "../actions";
|
import { Action } from "../actions";
|
||||||
|
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { KnockRoomOpts } from "matrix-js-sdk/src/@types/requests";
|
import { KnockRoomOpts } from "matrix-js-sdk/src/matrix";
|
||||||
|
|
||||||
import { Action } from "../actions";
|
import { Action } from "../actions";
|
||||||
import { ActionPayload } from "../payloads";
|
import { ActionPayload } from "../payloads";
|
||||||
|
|
|
@ -15,19 +15,18 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { EventType, MatrixEvent, Room, RoomStateEvent } from "matrix-js-sdk/src/matrix";
|
import { EventType, MatrixEvent, Room, RoomStateEvent, ContentHelpers } from "matrix-js-sdk/src/matrix";
|
||||||
import { parseTopicContent, TopicState } from "matrix-js-sdk/src/content-helpers";
|
|
||||||
import { MRoomTopicEventContent } from "matrix-js-sdk/src/@types/topic";
|
import { MRoomTopicEventContent } from "matrix-js-sdk/src/@types/topic";
|
||||||
import { Optional } from "matrix-events-sdk";
|
import { Optional } from "matrix-events-sdk";
|
||||||
|
|
||||||
import { useTypedEventEmitter } from "../useEventEmitter";
|
import { useTypedEventEmitter } from "../useEventEmitter";
|
||||||
|
|
||||||
export const getTopic = (room?: Room): Optional<TopicState> => {
|
export const getTopic = (room?: Room): Optional<ContentHelpers.TopicState> => {
|
||||||
const content = room?.currentState?.getStateEvents(EventType.RoomTopic, "")?.getContent<MRoomTopicEventContent>();
|
const content = room?.currentState?.getStateEvents(EventType.RoomTopic, "")?.getContent<MRoomTopicEventContent>();
|
||||||
return !!content ? parseTopicContent(content) : null;
|
return !!content ? ContentHelpers.parseTopicContent(content) : null;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function useTopic(room?: Room): Optional<TopicState> {
|
export function useTopic(room?: Room): Optional<ContentHelpers.TopicState> {
|
||||||
const [topic, setTopic] = useState(getTopic(room));
|
const [topic, setTopic] = useState(getTopic(room));
|
||||||
useTypedEventEmitter(room?.currentState, RoomStateEvent.Events, (ev: MatrixEvent) => {
|
useTypedEventEmitter(room?.currentState, RoomStateEvent.Events, (ev: MatrixEvent) => {
|
||||||
if (ev.getType() !== EventType.RoomTopic) return;
|
if (ev.getType() !== EventType.RoomTopic) return;
|
||||||
|
|
|
@ -14,8 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { RoomType, IProtocol, IPublicRoomsChunkRoom } from "matrix-js-sdk/src/matrix";
|
import { RoomType, IProtocol, IPublicRoomsChunkRoom, IRoomDirectoryOptions } from "matrix-js-sdk/src/matrix";
|
||||||
import { IRoomDirectoryOptions } from "matrix-js-sdk/src/@types/requests";
|
|
||||||
import { useCallback, useEffect, useState } from "react";
|
import { useCallback, useEffect, useState } from "react";
|
||||||
|
|
||||||
import { IPublicRoomDirectoryConfig } from "../components/views/directory/NetworkDropdown";
|
import { IPublicRoomDirectoryConfig } from "../components/views/directory/NetworkDropdown";
|
||||||
|
|
|
@ -15,15 +15,14 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { useCallback, useEffect, useMemo, useState } from "react";
|
import { useCallback, useEffect, useMemo, useState } from "react";
|
||||||
import { Room, RoomType } from "matrix-js-sdk/src/matrix";
|
import { Room, RoomType, HierarchyRoom } from "matrix-js-sdk/src/matrix";
|
||||||
import { IHierarchyRoom } from "matrix-js-sdk/src/@types/spaces";
|
|
||||||
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
|
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
|
||||||
import { normalize } from "matrix-js-sdk/src/utils";
|
import { normalize } from "matrix-js-sdk/src/utils";
|
||||||
|
|
||||||
import { MatrixClientPeg } from "../MatrixClientPeg";
|
import { MatrixClientPeg } from "../MatrixClientPeg";
|
||||||
|
|
||||||
export const useSpaceResults = (space: Room | undefined, query: string): [IHierarchyRoom[], boolean] => {
|
export const useSpaceResults = (space: Room | undefined, query: string): [HierarchyRoom[], boolean] => {
|
||||||
const [rooms, setRooms] = useState<IHierarchyRoom[]>([]);
|
const [rooms, setRooms] = useState<HierarchyRoom[]>([]);
|
||||||
const [hierarchy, setHierarchy] = useState<RoomHierarchy>();
|
const [hierarchy, setHierarchy] = useState<RoomHierarchy>();
|
||||||
|
|
||||||
const resetHierarchy = useCallback(() => {
|
const resetHierarchy = useCallback(() => {
|
||||||
|
|
|
@ -24,8 +24,8 @@ import {
|
||||||
RoomMember,
|
RoomMember,
|
||||||
RoomState,
|
RoomState,
|
||||||
RoomStateEvent,
|
RoomStateEvent,
|
||||||
|
ContentHelpers,
|
||||||
} from "matrix-js-sdk/src/matrix";
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { BeaconInfoState, makeBeaconContent, makeBeaconInfoContent } from "matrix-js-sdk/src/content-helpers";
|
|
||||||
import { MBeaconInfoEventContent, M_BEACON } from "matrix-js-sdk/src/@types/beacon";
|
import { MBeaconInfoEventContent, M_BEACON } from "matrix-js-sdk/src/@types/beacon";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
|
|
||||||
|
@ -549,13 +549,16 @@ export class OwnBeaconStore extends AsyncStoreWithClient<OwnBeaconStoreState> {
|
||||||
* Records error in beaconUpdateErrors
|
* Records error in beaconUpdateErrors
|
||||||
* rethrows
|
* rethrows
|
||||||
*/
|
*/
|
||||||
private updateBeaconEvent = async (beacon: Beacon, update: Partial<BeaconInfoState>): Promise<void> => {
|
private updateBeaconEvent = async (
|
||||||
|
beacon: Beacon,
|
||||||
|
update: Partial<ContentHelpers.BeaconInfoState>,
|
||||||
|
): Promise<void> => {
|
||||||
const { description, timeout, timestamp, live, assetType } = {
|
const { description, timeout, timestamp, live, assetType } = {
|
||||||
...beacon.beaconInfo,
|
...beacon.beaconInfo,
|
||||||
...update,
|
...update,
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateContent = makeBeaconInfoContent(timeout, live, description, assetType, timestamp);
|
const updateContent = ContentHelpers.makeBeaconInfoContent(timeout, live, description, assetType, timestamp);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this.matrixClient!.unstable_setLiveBeacon(beacon.roomId, updateContent);
|
await this.matrixClient!.unstable_setLiveBeacon(beacon.roomId, updateContent);
|
||||||
|
@ -593,7 +596,7 @@ export class OwnBeaconStore extends AsyncStoreWithClient<OwnBeaconStoreState> {
|
||||||
* Sends m.location event to referencing given beacon
|
* Sends m.location event to referencing given beacon
|
||||||
*/
|
*/
|
||||||
private sendLocationToBeacon = async (beacon: Beacon, { geoUri, timestamp }: TimedGeoUri): Promise<void> => {
|
private sendLocationToBeacon = async (beacon: Beacon, { geoUri, timestamp }: TimedGeoUri): Promise<void> => {
|
||||||
const content = makeBeaconContent(geoUri, timestamp, beacon.beaconInfoId);
|
const content = ContentHelpers.makeBeaconContent(geoUri, timestamp, beacon.beaconInfoId);
|
||||||
try {
|
try {
|
||||||
await this.matrixClient!.sendEvent(beacon.roomId, M_BEACON.name, content);
|
await this.matrixClient!.sendEvent(beacon.roomId, M_BEACON.name, content);
|
||||||
this.incrementBeaconLocationPublishErrorCount(beacon.identifier, false);
|
this.incrementBeaconLocationPublishErrorCount(beacon.identifier, false);
|
||||||
|
|
|
@ -24,9 +24,9 @@ import {
|
||||||
RoomStateEvent,
|
RoomStateEvent,
|
||||||
MatrixEvent,
|
MatrixEvent,
|
||||||
ClientEvent,
|
ClientEvent,
|
||||||
|
ISendEventResponse,
|
||||||
} from "matrix-js-sdk/src/matrix";
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { ISendEventResponse } from "matrix-js-sdk/src/@types/requests";
|
|
||||||
|
|
||||||
import { AsyncStoreWithClient } from "../AsyncStoreWithClient";
|
import { AsyncStoreWithClient } from "../AsyncStoreWithClient";
|
||||||
import defaultDispatcher from "../../dispatcher/dispatcher";
|
import defaultDispatcher from "../../dispatcher/dispatcher";
|
||||||
|
|
|
@ -14,8 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Room } from "matrix-js-sdk/src/matrix";
|
import { Room, HierarchyRoom } from "matrix-js-sdk/src/matrix";
|
||||||
import { IHierarchyRoom } from "matrix-js-sdk/src/@types/spaces";
|
|
||||||
|
|
||||||
import { _t } from "../../languageHandler";
|
import { _t } from "../../languageHandler";
|
||||||
|
|
||||||
|
@ -50,7 +49,7 @@ export const getMetaSpaceName = (spaceKey: MetaSpace, allRoomsInHome = false): s
|
||||||
|
|
||||||
export type SpaceKey = MetaSpace | Room["roomId"];
|
export type SpaceKey = MetaSpace | Room["roomId"];
|
||||||
|
|
||||||
export interface ISuggestedRoom extends IHierarchyRoom {
|
export interface ISuggestedRoom extends HierarchyRoom {
|
||||||
viaServers: string[];
|
viaServers: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,13 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { ReactNode } from "react";
|
import React, { ReactNode } from "react";
|
||||||
import { AutoDiscovery, ClientConfig, OidcClientConfig } from "matrix-js-sdk/src/autodiscovery";
|
import {
|
||||||
import { M_AUTHENTICATION, IClientWellKnown } from "matrix-js-sdk/src/matrix";
|
AutoDiscovery,
|
||||||
|
ClientConfig,
|
||||||
|
OidcClientConfig,
|
||||||
|
M_AUTHENTICATION,
|
||||||
|
IClientWellKnown,
|
||||||
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
|
|
||||||
import { _t, UserFriendlyError } from "../languageHandler";
|
import { _t, UserFriendlyError } from "../languageHandler";
|
||||||
|
|
|
@ -15,7 +15,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { AuthDict } from "matrix-js-sdk/src/interactive-auth";
|
import { AuthDict } from "matrix-js-sdk/src/interactive-auth";
|
||||||
import { UIAResponse } from "matrix-js-sdk/src/@types/uia";
|
import { UIAResponse } from "matrix-js-sdk/src/matrix";
|
||||||
|
|
||||||
import Modal from "../Modal";
|
import Modal from "../Modal";
|
||||||
import InteractiveAuthDialog, { InteractiveAuthDialogProps } from "../components/views/dialogs/InteractiveAuthDialog";
|
import InteractiveAuthDialog, { InteractiveAuthDialogProps } from "../components/views/dialogs/InteractiveAuthDialog";
|
||||||
|
|
|
@ -14,8 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { OidcClientConfig } from "matrix-js-sdk/src/autodiscovery";
|
import { OidcClientConfig, IDelegatedAuthConfig } from "matrix-js-sdk/src/matrix";
|
||||||
import { IDelegatedAuthConfig } from "matrix-js-sdk/src/matrix";
|
|
||||||
import { ValidatedIssuerConfig } from "matrix-js-sdk/src/oidc/validate";
|
import { ValidatedIssuerConfig } from "matrix-js-sdk/src/oidc/validate";
|
||||||
|
|
||||||
export type ValidatedDelegatedAuthConfig = IDelegatedAuthConfig & ValidatedIssuerConfig;
|
export type ValidatedDelegatedAuthConfig = IDelegatedAuthConfig & ValidatedIssuerConfig;
|
||||||
|
|
|
@ -14,8 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { BeaconInfoState } from "matrix-js-sdk/src/content-helpers";
|
import { Beacon, ContentHelpers } from "matrix-js-sdk/src/matrix";
|
||||||
import { Beacon } from "matrix-js-sdk/src/matrix";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get ms until expiry
|
* Get ms until expiry
|
||||||
|
@ -27,7 +26,7 @@ import { Beacon } from "matrix-js-sdk/src/matrix";
|
||||||
export const msUntilExpiry = (startTimestamp: number, durationMs: number): number =>
|
export const msUntilExpiry = (startTimestamp: number, durationMs: number): number =>
|
||||||
Math.max(0, startTimestamp + durationMs - Date.now());
|
Math.max(0, startTimestamp + durationMs - Date.now());
|
||||||
|
|
||||||
export const getBeaconMsUntilExpiry = (beaconInfo: BeaconInfoState): number =>
|
export const getBeaconMsUntilExpiry = (beaconInfo: ContentHelpers.BeaconInfoState): number =>
|
||||||
msUntilExpiry(beaconInfo.timestamp || 0, beaconInfo.timeout);
|
msUntilExpiry(beaconInfo.timestamp || 0, beaconInfo.timeout);
|
||||||
|
|
||||||
export const getBeaconExpiryTimestamp = (beacon: Beacon): number =>
|
export const getBeaconExpiryTimestamp = (beacon: Beacon): number =>
|
||||||
|
|
|
@ -16,7 +16,7 @@ limitations under the License.
|
||||||
|
|
||||||
import { completeAuthorizationCodeGrant, generateOidcAuthorizationUrl } from "matrix-js-sdk/src/oidc/authorize";
|
import { completeAuthorizationCodeGrant, generateOidcAuthorizationUrl } from "matrix-js-sdk/src/oidc/authorize";
|
||||||
import { QueryDict } from "matrix-js-sdk/src/utils";
|
import { QueryDict } from "matrix-js-sdk/src/utils";
|
||||||
import { OidcClientConfig } from "matrix-js-sdk/src/autodiscovery";
|
import { OidcClientConfig } from "matrix-js-sdk/src/matrix";
|
||||||
import { randomString } from "matrix-js-sdk/src/randomstring";
|
import { randomString } from "matrix-js-sdk/src/randomstring";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -17,9 +17,8 @@ limitations under the License.
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { mocked } from "jest-mock";
|
import { mocked } from "jest-mock";
|
||||||
import { fireEvent, render, screen, waitFor, waitForElementToBeRemoved } from "@testing-library/react";
|
import { fireEvent, render, screen, waitFor, waitForElementToBeRemoved } from "@testing-library/react";
|
||||||
import { MatrixClient, Room } from "matrix-js-sdk/src/matrix";
|
import { MatrixClient, Room, HierarchyRoom } from "matrix-js-sdk/src/matrix";
|
||||||
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
|
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
|
||||||
import { IHierarchyRoom } from "matrix-js-sdk/src/@types/spaces";
|
|
||||||
|
|
||||||
import { MatrixClientPeg } from "../../../src/MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../src/MatrixClientPeg";
|
||||||
import { mkStubRoom, stubClient } from "../../test-utils";
|
import { mkStubRoom, stubClient } from "../../test-utils";
|
||||||
|
@ -85,41 +84,41 @@ describe("SpaceHierarchy", () => {
|
||||||
it("grabs last room that is in hierarchy when latest version is in hierarchy", () => {
|
it("grabs last room that is in hierarchy when latest version is in hierarchy", () => {
|
||||||
const hierarchy = {
|
const hierarchy = {
|
||||||
roomMap: new Map([
|
roomMap: new Map([
|
||||||
[roomV1.roomId, { room_id: roomV1.roomId } as IHierarchyRoom],
|
[roomV1.roomId, { room_id: roomV1.roomId } as HierarchyRoom],
|
||||||
[roomV2.roomId, { room_id: roomV2.roomId } as IHierarchyRoom],
|
[roomV2.roomId, { room_id: roomV2.roomId } as HierarchyRoom],
|
||||||
[roomV3.roomId, { room_id: roomV3.roomId } as IHierarchyRoom],
|
[roomV3.roomId, { room_id: roomV3.roomId } as HierarchyRoom],
|
||||||
]),
|
]),
|
||||||
} as RoomHierarchy;
|
} as RoomHierarchy;
|
||||||
const localRoomV1 = toLocalRoom(client, { room_id: roomV1.roomId } as IHierarchyRoom, hierarchy);
|
const localRoomV1 = toLocalRoom(client, { room_id: roomV1.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(localRoomV1.room_id).toEqual(roomV3.roomId);
|
expect(localRoomV1.room_id).toEqual(roomV3.roomId);
|
||||||
const localRoomV2 = toLocalRoom(client, { room_id: roomV2.roomId } as IHierarchyRoom, hierarchy);
|
const localRoomV2 = toLocalRoom(client, { room_id: roomV2.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(localRoomV2.room_id).toEqual(roomV3.roomId);
|
expect(localRoomV2.room_id).toEqual(roomV3.roomId);
|
||||||
const localRoomV3 = toLocalRoom(client, { room_id: roomV3.roomId } as IHierarchyRoom, hierarchy);
|
const localRoomV3 = toLocalRoom(client, { room_id: roomV3.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(localRoomV3.room_id).toEqual(roomV3.roomId);
|
expect(localRoomV3.room_id).toEqual(roomV3.roomId);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("grabs last room that is in hierarchy when latest version is *not* in hierarchy", () => {
|
it("grabs last room that is in hierarchy when latest version is *not* in hierarchy", () => {
|
||||||
const hierarchy = {
|
const hierarchy = {
|
||||||
roomMap: new Map([
|
roomMap: new Map([
|
||||||
[roomV1.roomId, { room_id: roomV1.roomId } as IHierarchyRoom],
|
[roomV1.roomId, { room_id: roomV1.roomId } as HierarchyRoom],
|
||||||
[roomV2.roomId, { room_id: roomV2.roomId } as IHierarchyRoom],
|
[roomV2.roomId, { room_id: roomV2.roomId } as HierarchyRoom],
|
||||||
]),
|
]),
|
||||||
} as RoomHierarchy;
|
} as RoomHierarchy;
|
||||||
const localRoomV1 = toLocalRoom(client, { room_id: roomV1.roomId } as IHierarchyRoom, hierarchy);
|
const localRoomV1 = toLocalRoom(client, { room_id: roomV1.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(localRoomV1.room_id).toEqual(roomV2.roomId);
|
expect(localRoomV1.room_id).toEqual(roomV2.roomId);
|
||||||
const localRoomV2 = toLocalRoom(client, { room_id: roomV2.roomId } as IHierarchyRoom, hierarchy);
|
const localRoomV2 = toLocalRoom(client, { room_id: roomV2.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(localRoomV2.room_id).toEqual(roomV2.roomId);
|
expect(localRoomV2.room_id).toEqual(roomV2.roomId);
|
||||||
const localRoomV3 = toLocalRoom(client, { room_id: roomV3.roomId } as IHierarchyRoom, hierarchy);
|
const localRoomV3 = toLocalRoom(client, { room_id: roomV3.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(localRoomV3.room_id).toEqual(roomV2.roomId);
|
expect(localRoomV3.room_id).toEqual(roomV2.roomId);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("returns specified room when none of the versions is in hierarchy", () => {
|
it("returns specified room when none of the versions is in hierarchy", () => {
|
||||||
const hierarchy = { roomMap: new Map([]) } as RoomHierarchy;
|
const hierarchy = { roomMap: new Map([]) } as RoomHierarchy;
|
||||||
const localRoomV1 = toLocalRoom(client, { room_id: roomV1.roomId } as IHierarchyRoom, hierarchy);
|
const localRoomV1 = toLocalRoom(client, { room_id: roomV1.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(localRoomV1.room_id).toEqual(roomV1.roomId);
|
expect(localRoomV1.room_id).toEqual(roomV1.roomId);
|
||||||
const localRoomV2 = toLocalRoom(client, { room_id: roomV2.roomId } as IHierarchyRoom, hierarchy);
|
const localRoomV2 = toLocalRoom(client, { room_id: roomV2.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(localRoomV2.room_id).toEqual(roomV2.roomId);
|
expect(localRoomV2.room_id).toEqual(roomV2.roomId);
|
||||||
const localRoomV3 = toLocalRoom(client, { room_id: roomV3.roomId } as IHierarchyRoom, hierarchy);
|
const localRoomV3 = toLocalRoom(client, { room_id: roomV3.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(localRoomV3.room_id).toEqual(roomV3.roomId);
|
expect(localRoomV3.room_id).toEqual(roomV3.roomId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -130,7 +129,7 @@ describe("SpaceHierarchy", () => {
|
||||||
it("Passes through the dynamic predecessor setting", async () => {
|
it("Passes through the dynamic predecessor setting", async () => {
|
||||||
mocked(client.getRoomUpgradeHistory).mockClear();
|
mocked(client.getRoomUpgradeHistory).mockClear();
|
||||||
const hierarchy = { roomMap: new Map([]) } as RoomHierarchy;
|
const hierarchy = { roomMap: new Map([]) } as RoomHierarchy;
|
||||||
toLocalRoom(client, { room_id: roomV1.roomId } as IHierarchyRoom, hierarchy);
|
toLocalRoom(client, { room_id: roomV1.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(client.getRoomUpgradeHistory).toHaveBeenCalledWith(roomV1.roomId, true, false);
|
expect(client.getRoomUpgradeHistory).toHaveBeenCalledWith(roomV1.roomId, true, false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -146,7 +145,7 @@ describe("SpaceHierarchy", () => {
|
||||||
it("Passes through the dynamic predecessor setting", async () => {
|
it("Passes through the dynamic predecessor setting", async () => {
|
||||||
mocked(client.getRoomUpgradeHistory).mockClear();
|
mocked(client.getRoomUpgradeHistory).mockClear();
|
||||||
const hierarchy = { roomMap: new Map([]) } as RoomHierarchy;
|
const hierarchy = { roomMap: new Map([]) } as RoomHierarchy;
|
||||||
toLocalRoom(client, { room_id: roomV1.roomId } as IHierarchyRoom, hierarchy);
|
toLocalRoom(client, { room_id: roomV1.roomId } as HierarchyRoom, hierarchy);
|
||||||
expect(client.getRoomUpgradeHistory).toHaveBeenCalledWith(roomV1.roomId, true, true);
|
expect(client.getRoomUpgradeHistory).toHaveBeenCalledWith(roomV1.roomId, true, true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -183,7 +182,7 @@ describe("SpaceHierarchy", () => {
|
||||||
);
|
);
|
||||||
[room1, room2, space1, room3].forEach((r) => mocked(r.getMyMembership).mockReturnValue("leave"));
|
[room1, room2, space1, room3].forEach((r) => mocked(r.getMyMembership).mockReturnValue("leave"));
|
||||||
|
|
||||||
const hierarchyRoot: IHierarchyRoom = {
|
const hierarchyRoot: HierarchyRoom = {
|
||||||
room_id: root.roomId,
|
room_id: root.roomId,
|
||||||
num_joined_members: 1,
|
num_joined_members: 1,
|
||||||
room_type: "m.space",
|
room_type: "m.space",
|
||||||
|
@ -213,21 +212,21 @@ describe("SpaceHierarchy", () => {
|
||||||
world_readable: true,
|
world_readable: true,
|
||||||
guest_can_join: true,
|
guest_can_join: true,
|
||||||
};
|
};
|
||||||
const hierarchyRoom1: IHierarchyRoom = {
|
const hierarchyRoom1: HierarchyRoom = {
|
||||||
room_id: room1.roomId,
|
room_id: room1.roomId,
|
||||||
num_joined_members: 2,
|
num_joined_members: 2,
|
||||||
children_state: [],
|
children_state: [],
|
||||||
world_readable: true,
|
world_readable: true,
|
||||||
guest_can_join: true,
|
guest_can_join: true,
|
||||||
};
|
};
|
||||||
const hierarchyRoom2: IHierarchyRoom = {
|
const hierarchyRoom2: HierarchyRoom = {
|
||||||
room_id: room2.roomId,
|
room_id: room2.roomId,
|
||||||
num_joined_members: 3,
|
num_joined_members: 3,
|
||||||
children_state: [],
|
children_state: [],
|
||||||
world_readable: true,
|
world_readable: true,
|
||||||
guest_can_join: true,
|
guest_can_join: true,
|
||||||
};
|
};
|
||||||
const hierarchyRoom3: IHierarchyRoom = {
|
const hierarchyRoom3: HierarchyRoom = {
|
||||||
name: "Nested room",
|
name: "Nested room",
|
||||||
room_id: room3.roomId,
|
room_id: room3.roomId,
|
||||||
num_joined_members: 3,
|
num_joined_members: 3,
|
||||||
|
@ -235,7 +234,7 @@ describe("SpaceHierarchy", () => {
|
||||||
world_readable: true,
|
world_readable: true,
|
||||||
guest_can_join: true,
|
guest_can_join: true,
|
||||||
};
|
};
|
||||||
const hierarchySpace1: IHierarchyRoom = {
|
const hierarchySpace1: HierarchyRoom = {
|
||||||
room_id: space1.roomId,
|
room_id: space1.roomId,
|
||||||
name: "Nested space",
|
name: "Nested space",
|
||||||
num_joined_members: 1,
|
num_joined_members: 1,
|
||||||
|
|
|
@ -20,7 +20,7 @@ import { mocked, MockedObject } from "jest-mock";
|
||||||
import fetchMock from "fetch-mock-jest";
|
import fetchMock from "fetch-mock-jest";
|
||||||
import { DELEGATED_OIDC_COMPATIBILITY, IdentityProviderBrand } from "matrix-js-sdk/src/@types/auth";
|
import { DELEGATED_OIDC_COMPATIBILITY, IdentityProviderBrand } from "matrix-js-sdk/src/@types/auth";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { createClient, MatrixClient } from "matrix-js-sdk/src/matrix";
|
import * as Matrix from "matrix-js-sdk/src/matrix";
|
||||||
import { OidcError } from "matrix-js-sdk/src/oidc/error";
|
import { OidcError } from "matrix-js-sdk/src/oidc/error";
|
||||||
|
|
||||||
import SdkConfig from "../../../../src/SdkConfig";
|
import SdkConfig from "../../../../src/SdkConfig";
|
||||||
|
@ -32,8 +32,6 @@ import { Features } from "../../../../src/settings/Settings";
|
||||||
import { ValidatedDelegatedAuthConfig } from "../../../../src/utils/ValidatedServerConfig";
|
import { ValidatedDelegatedAuthConfig } from "../../../../src/utils/ValidatedServerConfig";
|
||||||
import * as registerClientUtils from "../../../../src/utils/oidc/registerClient";
|
import * as registerClientUtils from "../../../../src/utils/oidc/registerClient";
|
||||||
|
|
||||||
jest.mock("matrix-js-sdk/src/matrix");
|
|
||||||
|
|
||||||
jest.useRealTimers();
|
jest.useRealTimers();
|
||||||
|
|
||||||
const oidcStaticClientsConfig = {
|
const oidcStaticClientsConfig = {
|
||||||
|
@ -48,7 +46,7 @@ describe("Login", function () {
|
||||||
const mockClient = mocked({
|
const mockClient = mocked({
|
||||||
login: jest.fn().mockResolvedValue({}),
|
login: jest.fn().mockResolvedValue({}),
|
||||||
loginFlows: jest.fn(),
|
loginFlows: jest.fn(),
|
||||||
} as unknown as MatrixClient);
|
} as unknown as Matrix.MatrixClient);
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
SdkConfig.put({
|
SdkConfig.put({
|
||||||
|
@ -62,7 +60,7 @@ describe("Login", function () {
|
||||||
user_id: "@user:server",
|
user_id: "@user:server",
|
||||||
});
|
});
|
||||||
mockClient.loginFlows.mockClear().mockResolvedValue({ flows: [{ type: "m.login.password" }] });
|
mockClient.loginFlows.mockClear().mockResolvedValue({ flows: [{ type: "m.login.password" }] });
|
||||||
mocked(createClient).mockImplementation((opts) => {
|
jest.spyOn(Matrix, "createClient").mockImplementation((opts) => {
|
||||||
mockClient.idBaseUrl = opts.idBaseUrl;
|
mockClient.idBaseUrl = opts.idBaseUrl;
|
||||||
mockClient.baseUrl = opts.baseUrl;
|
mockClient.baseUrl = opts.baseUrl;
|
||||||
return mockClient;
|
return mockClient;
|
||||||
|
|
|
@ -16,8 +16,7 @@ limitations under the License.
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { act, fireEvent, render } from "@testing-library/react";
|
import { act, fireEvent, render } from "@testing-library/react";
|
||||||
import { Beacon, RoomMember, MatrixEvent } from "matrix-js-sdk/src/matrix";
|
import { Beacon, RoomMember, MatrixEvent, LocationAssetType } from "matrix-js-sdk/src/matrix";
|
||||||
import { LocationAssetType } from "matrix-js-sdk/src/@types/location";
|
|
||||||
|
|
||||||
import BeaconListItem from "../../../../src/components/views/beacon/BeaconListItem";
|
import BeaconListItem from "../../../../src/components/views/beacon/BeaconListItem";
|
||||||
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
||||||
|
|
|
@ -16,8 +16,7 @@ limitations under the License.
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { render, RenderResult } from "@testing-library/react";
|
import { render, RenderResult } from "@testing-library/react";
|
||||||
import { RoomMember } from "matrix-js-sdk/src/matrix";
|
import { RoomMember, LocationAssetType } from "matrix-js-sdk/src/matrix";
|
||||||
import { LocationAssetType } from "matrix-js-sdk/src/@types/location";
|
|
||||||
|
|
||||||
import LocationViewDialog from "../../../../src/components/views/location/LocationViewDialog";
|
import LocationViewDialog from "../../../../src/components/views/location/LocationViewDialog";
|
||||||
import { TILE_SERVER_WK_KEY } from "../../../../src/utils/WellKnownUtils";
|
import { TILE_SERVER_WK_KEY } from "../../../../src/utils/WellKnownUtils";
|
||||||
|
|
|
@ -15,8 +15,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { mocked } from "jest-mock";
|
import { mocked } from "jest-mock";
|
||||||
import { MatrixClient } from "matrix-js-sdk/src/matrix";
|
import { ContentHelpers, MatrixClient } from "matrix-js-sdk/src/matrix";
|
||||||
import { makeLocationContent } from "matrix-js-sdk/src/content-helpers";
|
|
||||||
import { LegacyLocationEventContent, MLocationEventContent } from "matrix-js-sdk/src/@types/location";
|
import { LegacyLocationEventContent, MLocationEventContent } from "matrix-js-sdk/src/@types/location";
|
||||||
|
|
||||||
import { doMaybeLocalRoomAction } from "../../../../src/utils/local-room";
|
import { doMaybeLocalRoomAction } from "../../../../src/utils/local-room";
|
||||||
|
@ -30,10 +29,6 @@ jest.mock("../../../../src/utils/local-room", () => ({
|
||||||
doMaybeLocalRoomAction: jest.fn(),
|
doMaybeLocalRoomAction: jest.fn(),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
jest.mock("matrix-js-sdk/src/content-helpers", () => ({
|
|
||||||
makeLocationContent: jest.fn(),
|
|
||||||
}));
|
|
||||||
|
|
||||||
describe("shareLocation", () => {
|
describe("shareLocation", () => {
|
||||||
const roomId = "!room:example.com";
|
const roomId = "!room:example.com";
|
||||||
const shareType = LocationShareType.Pin;
|
const shareType = LocationShareType.Pin;
|
||||||
|
@ -42,6 +37,7 @@ describe("shareLocation", () => {
|
||||||
let shareLocationFn: ShareLocationFn;
|
let shareLocationFn: ShareLocationFn;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
const makeLocationContent = jest.spyOn(ContentHelpers, "makeLocationContent");
|
||||||
client = {
|
client = {
|
||||||
sendMessage: jest.fn(),
|
sendMessage: jest.fn(),
|
||||||
} as unknown as MatrixClient;
|
} as unknown as MatrixClient;
|
||||||
|
|
|
@ -16,8 +16,7 @@ limitations under the License.
|
||||||
|
|
||||||
import React, { ComponentProps } from "react";
|
import React, { ComponentProps } from "react";
|
||||||
import { fireEvent, render } from "@testing-library/react";
|
import { fireEvent, render } from "@testing-library/react";
|
||||||
import { LocationAssetType } from "matrix-js-sdk/src/@types/location";
|
import { LocationAssetType, ClientEvent, RoomMember, SyncState } from "matrix-js-sdk/src/matrix";
|
||||||
import { ClientEvent, RoomMember, SyncState } from "matrix-js-sdk/src/matrix";
|
|
||||||
import * as maplibregl from "maplibre-gl";
|
import * as maplibregl from "maplibre-gl";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
|
|
||||||
|
|
|
@ -22,8 +22,8 @@ import {
|
||||||
MatrixEvent,
|
MatrixEvent,
|
||||||
RoomStateEvent,
|
RoomStateEvent,
|
||||||
RoomMember,
|
RoomMember,
|
||||||
|
ContentHelpers,
|
||||||
} from "matrix-js-sdk/src/matrix";
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { makeBeaconContent, makeBeaconInfoContent } from "matrix-js-sdk/src/content-helpers";
|
|
||||||
import { M_BEACON } from "matrix-js-sdk/src/@types/beacon";
|
import { M_BEACON } from "matrix-js-sdk/src/@types/beacon";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { Mocked } from "jest-mock";
|
import { Mocked } from "jest-mock";
|
||||||
|
@ -239,12 +239,12 @@ describe("OwnBeaconStore", () => {
|
||||||
expect(mockClient.sendEvent).toHaveBeenCalledWith(
|
expect(mockClient.sendEvent).toHaveBeenCalledWith(
|
||||||
room1Id,
|
room1Id,
|
||||||
M_BEACON.name,
|
M_BEACON.name,
|
||||||
makeBeaconContent(defaultLocationUri, now, alicesRoom1BeaconInfo.getId()!),
|
ContentHelpers.makeBeaconContent(defaultLocationUri, now, alicesRoom1BeaconInfo.getId()!),
|
||||||
);
|
);
|
||||||
expect(mockClient.sendEvent).toHaveBeenCalledWith(
|
expect(mockClient.sendEvent).toHaveBeenCalledWith(
|
||||||
room2Id,
|
room2Id,
|
||||||
M_BEACON.name,
|
M_BEACON.name,
|
||||||
makeBeaconContent(defaultLocationUri, now, alicesRoom2BeaconInfo.getId()!),
|
ContentHelpers.makeBeaconContent(defaultLocationUri, now, alicesRoom2BeaconInfo.getId()!),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1155,14 +1155,14 @@ describe("OwnBeaconStore", () => {
|
||||||
|
|
||||||
it("creates a live beacon", async () => {
|
it("creates a live beacon", async () => {
|
||||||
const store = await makeOwnBeaconStore();
|
const store = await makeOwnBeaconStore();
|
||||||
const content = makeBeaconInfoContent(100);
|
const content = ContentHelpers.makeBeaconInfoContent(100);
|
||||||
await store.createLiveBeacon(room1Id, content);
|
await store.createLiveBeacon(room1Id, content);
|
||||||
expect(mockClient.unstable_createLiveBeacon).toHaveBeenCalledWith(room1Id, content);
|
expect(mockClient.unstable_createLiveBeacon).toHaveBeenCalledWith(room1Id, content);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("sets new beacon event id in local storage", async () => {
|
it("sets new beacon event id in local storage", async () => {
|
||||||
const store = await makeOwnBeaconStore();
|
const store = await makeOwnBeaconStore();
|
||||||
const content = makeBeaconInfoContent(100);
|
const content = ContentHelpers.makeBeaconInfoContent(100);
|
||||||
await store.createLiveBeacon(room1Id, content);
|
await store.createLiveBeacon(room1Id, content);
|
||||||
|
|
||||||
expect(localStorageSetSpy).toHaveBeenCalledWith(
|
expect(localStorageSetSpy).toHaveBeenCalledWith(
|
||||||
|
@ -1174,7 +1174,7 @@ describe("OwnBeaconStore", () => {
|
||||||
it("handles saving beacon event id when local storage has bad value", async () => {
|
it("handles saving beacon event id when local storage has bad value", async () => {
|
||||||
localStorageGetSpy.mockReturnValue(JSON.stringify({ id: "1" }));
|
localStorageGetSpy.mockReturnValue(JSON.stringify({ id: "1" }));
|
||||||
const store = await makeOwnBeaconStore();
|
const store = await makeOwnBeaconStore();
|
||||||
const content = makeBeaconInfoContent(100);
|
const content = ContentHelpers.makeBeaconInfoContent(100);
|
||||||
await store.createLiveBeacon(room1Id, content);
|
await store.createLiveBeacon(room1Id, content);
|
||||||
|
|
||||||
// stored successfully
|
// stored successfully
|
||||||
|
@ -1183,7 +1183,7 @@ describe("OwnBeaconStore", () => {
|
||||||
|
|
||||||
it("creates a live beacon without error when no beacons exist for room", async () => {
|
it("creates a live beacon without error when no beacons exist for room", async () => {
|
||||||
const store = await makeOwnBeaconStore();
|
const store = await makeOwnBeaconStore();
|
||||||
const content = makeBeaconInfoContent(100);
|
const content = ContentHelpers.makeBeaconInfoContent(100);
|
||||||
await store.createLiveBeacon(room1Id, content);
|
await store.createLiveBeacon(room1Id, content);
|
||||||
|
|
||||||
// didn't throw, no error log
|
// didn't throw, no error log
|
||||||
|
@ -1195,7 +1195,7 @@ describe("OwnBeaconStore", () => {
|
||||||
makeRoomsWithStateEvents([alicesRoom1BeaconInfo, alicesRoom2BeaconInfo]);
|
makeRoomsWithStateEvents([alicesRoom1BeaconInfo, alicesRoom2BeaconInfo]);
|
||||||
const store = await makeOwnBeaconStore();
|
const store = await makeOwnBeaconStore();
|
||||||
|
|
||||||
const content = makeBeaconInfoContent(100);
|
const content = ContentHelpers.makeBeaconInfoContent(100);
|
||||||
await store.createLiveBeacon(room1Id, content);
|
await store.createLiveBeacon(room1Id, content);
|
||||||
|
|
||||||
// stop alicesRoom1BeaconInfo
|
// stop alicesRoom1BeaconInfo
|
||||||
|
|
|
@ -15,10 +15,15 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { MockedObject } from "jest-mock";
|
import { MockedObject } from "jest-mock";
|
||||||
import { makeBeaconInfoContent, makeBeaconContent } from "matrix-js-sdk/src/content-helpers";
|
import {
|
||||||
import { MatrixClient, MatrixEvent, Beacon, getBeaconInfoIdentifier } from "matrix-js-sdk/src/matrix";
|
MatrixClient,
|
||||||
|
MatrixEvent,
|
||||||
|
Beacon,
|
||||||
|
getBeaconInfoIdentifier,
|
||||||
|
ContentHelpers,
|
||||||
|
LocationAssetType,
|
||||||
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { M_BEACON, M_BEACON_INFO } from "matrix-js-sdk/src/@types/beacon";
|
import { M_BEACON, M_BEACON_INFO } from "matrix-js-sdk/src/@types/beacon";
|
||||||
import { LocationAssetType } from "matrix-js-sdk/src/@types/location";
|
|
||||||
|
|
||||||
import { getMockGeolocationPositionError } from "./location";
|
import { getMockGeolocationPositionError } from "./location";
|
||||||
import { makeRoomWithStateEvents } from "./room";
|
import { makeRoomWithStateEvents } from "./room";
|
||||||
|
@ -54,7 +59,7 @@ export const makeBeaconInfoEvent = (
|
||||||
room_id: roomId,
|
room_id: roomId,
|
||||||
state_key: sender,
|
state_key: sender,
|
||||||
sender,
|
sender,
|
||||||
content: makeBeaconInfoContent(timeout, isLive, description, assetType, timestamp),
|
content: ContentHelpers.makeBeaconInfoContent(timeout, isLive, description, assetType, timestamp),
|
||||||
});
|
});
|
||||||
|
|
||||||
event.event.origin_server_ts = Date.now();
|
event.event.origin_server_ts = Date.now();
|
||||||
|
@ -97,7 +102,7 @@ export const makeBeaconEvent = (
|
||||||
type: M_BEACON.name,
|
type: M_BEACON.name,
|
||||||
room_id: roomId,
|
room_id: roomId,
|
||||||
sender,
|
sender,
|
||||||
content: makeBeaconContent(geoUri, timestamp, beaconInfoId, description),
|
content: ContentHelpers.makeBeaconContent(geoUri, timestamp, beaconInfoId, description),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { LocationAssetType, M_LOCATION } from "matrix-js-sdk/src/@types/location";
|
import { LocationAssetType, M_LOCATION } from "matrix-js-sdk/src/@types/location";
|
||||||
import { makeLocationContent } from "matrix-js-sdk/src/content-helpers";
|
import { MatrixEvent, EventType, ContentHelpers } from "matrix-js-sdk/src/matrix";
|
||||||
import { MatrixEvent, EventType } from "matrix-js-sdk/src/matrix";
|
|
||||||
|
|
||||||
let id = 1;
|
let id = 1;
|
||||||
export const makeLegacyLocationEvent = (geoUri: string): MatrixEvent => {
|
export const makeLegacyLocationEvent = (geoUri: string): MatrixEvent => {
|
||||||
|
@ -35,7 +34,7 @@ export const makeLocationEvent = (geoUri: string, assetType?: LocationAssetType)
|
||||||
return new MatrixEvent({
|
return new MatrixEvent({
|
||||||
event_id: `$${++id}`,
|
event_id: `$${++id}`,
|
||||||
type: M_LOCATION.name,
|
type: M_LOCATION.name,
|
||||||
content: makeLocationContent(
|
content: ContentHelpers.makeLocationContent(
|
||||||
`Found at ${geoUri} at 2021-12-21T12:22+0000`,
|
`Found at ${geoUri} at 2021-12-21T12:22+0000`,
|
||||||
geoUri,
|
geoUri,
|
||||||
252523,
|
252523,
|
||||||
|
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { OidcClientConfig } from "matrix-js-sdk/src/autodiscovery";
|
import { OidcClientConfig } from "matrix-js-sdk/src/matrix";
|
||||||
import { ValidatedIssuerMetadata } from "matrix-js-sdk/src/oidc/validate";
|
import { ValidatedIssuerMetadata } from "matrix-js-sdk/src/oidc/validate";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -14,9 +14,8 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { AutoDiscovery, AutoDiscoveryAction, ClientConfig } from "matrix-js-sdk/src/autodiscovery";
|
import { AutoDiscovery, AutoDiscoveryAction, ClientConfig, M_AUTHENTICATION } from "matrix-js-sdk/src/matrix";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { M_AUTHENTICATION } from "matrix-js-sdk/src/matrix";
|
|
||||||
|
|
||||||
import AutoDiscoveryUtils from "../../src/utils/AutoDiscoveryUtils";
|
import AutoDiscoveryUtils from "../../src/utils/AutoDiscoveryUtils";
|
||||||
|
|
||||||
|
|
|
@ -22,13 +22,13 @@ import {
|
||||||
M_LOCATION,
|
M_LOCATION,
|
||||||
M_TIMESTAMP,
|
M_TIMESTAMP,
|
||||||
} from "matrix-js-sdk/src/@types/location";
|
} from "matrix-js-sdk/src/@types/location";
|
||||||
import { makeLocationContent } from "matrix-js-sdk/src/content-helpers";
|
import { ContentHelpers } from "matrix-js-sdk/src/matrix";
|
||||||
|
|
||||||
import { isSelfLocation } from "../../../src/utils/location";
|
import { isSelfLocation } from "../../../src/utils/location";
|
||||||
|
|
||||||
describe("isSelfLocation", () => {
|
describe("isSelfLocation", () => {
|
||||||
it("Returns true for a full m.asset event", () => {
|
it("Returns true for a full m.asset event", () => {
|
||||||
const content = makeLocationContent("", "0", Date.now());
|
const content = ContentHelpers.makeLocationContent("", "0", Date.now());
|
||||||
expect(isSelfLocation(content)).toBe(true);
|
expect(isSelfLocation(content)).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ describe("isSelfLocation", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Returns false for an unknown asset type", () => {
|
it("Returns false for an unknown asset type", () => {
|
||||||
const content = makeLocationContent(
|
const content = ContentHelpers.makeLocationContent(
|
||||||
undefined /* text */,
|
undefined /* text */,
|
||||||
"geo:foo",
|
"geo:foo",
|
||||||
0,
|
0,
|
||||||
|
|
Loading…
Reference in a new issue