Live location sharing - basic maximised beacon map (#8310)

* open a dialog with map centered around first beacon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add room member markers

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix unmount issue in smart marker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* dont throw on no more live locations

Signed-off-by: Kerry Archibald <kerrya@element.io>

* cursor on beacon maps

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fussy import ordering

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test dialog opening from beacon body

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test beaconmarker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test BeaconViewDialog

Signed-off-by: Kerry Archibald <kerrya@element.io>

* comment

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use unstable prefix for wk tile_Server

Signed-off-by: Kerry Archibald <kerrya@element.io>

* unstable prefix for new m.tile_server use in test

Signed-off-by: Kerry Archibald <kerrya@element.io>
This commit is contained in:
Kerry 2022-04-14 15:14:05 +02:00 committed by GitHub
parent 1c215e2b71
commit f95106d2c6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 894 additions and 56 deletions

View file

@ -20,6 +20,7 @@ import { RoomMember } from 'matrix-js-sdk/src/matrix';
import { LocationAssetType } from 'matrix-js-sdk/src/@types/location';
import LocationViewDialog from '../../../../src/components/views/location/LocationViewDialog';
import { TILE_SERVER_WK_KEY } from '../../../../src/utils/WellKnownUtils';
import { getMockClientWithEventEmitter, makeLocationEvent } from '../../../test-utils';
describe('<LocationViewDialog />', () => {
@ -27,7 +28,7 @@ describe('<LocationViewDialog />', () => {
const userId = '@user:server';
const mockClient = getMockClientWithEventEmitter({
getClientWellKnown: jest.fn().mockReturnValue({
"m.tile_server": { map_style_url: 'maps.com' },
[TILE_SERVER_WK_KEY.name]: { map_style_url: 'maps.com' },
}),
isGuest: jest.fn().mockReturnValue(false),
});

View file

@ -24,6 +24,7 @@ import { logger } from 'matrix-js-sdk/src/logger';
import Map from '../../../../src/components/views/location/Map';
import { findByTestId, getMockClientWithEventEmitter } from '../../../test-utils';
import MatrixClientContext from '../../../../src/contexts/MatrixClientContext';
import { TILE_SERVER_WK_KEY } from '../../../../src/utils/WellKnownUtils';
describe('<Map />', () => {
const defaultProps = {
@ -34,7 +35,7 @@ describe('<Map />', () => {
};
const matrixClient = getMockClientWithEventEmitter({
getClientWellKnown: jest.fn().mockReturnValue({
"m.tile_server": { map_style_url: 'maps.com' },
[TILE_SERVER_WK_KEY.name]: { map_style_url: 'maps.com' },
}),
});
const getComponent = (props = {}) =>
@ -46,7 +47,7 @@ describe('<Map />', () => {
beforeEach(() => {
jest.clearAllMocks();
matrixClient.getClientWellKnown.mockReturnValue({
"m.tile_server": { map_style_url: 'maps.com' },
[TILE_SERVER_WK_KEY.name]: { map_style_url: 'maps.com' },
});
jest.spyOn(logger, 'error').mockRestore();
@ -65,7 +66,7 @@ describe('<Map />', () => {
act(() => {
matrixClient.emit(ClientEvent.ClientWellKnown, {
"m.tile_server": { map_style_url: 'new.maps.com' },
[TILE_SERVER_WK_KEY.name]: { map_style_url: 'new.maps.com' },
});
});
@ -77,7 +78,7 @@ describe('<Map />', () => {
act(() => {
matrixClient.emit(ClientEvent.ClientWellKnown, {
"m.tile_server": { map_style_url: undefined },
[TILE_SERVER_WK_KEY.name]: { map_style_url: undefined },
});
});

View file

@ -48,22 +48,24 @@ exports[`<LocationViewDialog /> renders map correctly 1`] = `
}
}
>
<ForwardRef
id="mx_LocationViewDialog_$2-marker"
>
<div
className="mx_Marker mx_Marker_defaultColor"
<span>
<ForwardRef
id="mx_LocationViewDialog_$2-marker"
>
<div
className="mx_Marker_border"
className="mx_Marker mx_Marker_defaultColor"
id="mx_LocationViewDialog_$2-marker"
>
<div
className="mx_Marker_icon"
/>
className="mx_Marker_border"
>
<div
className="mx_Marker_icon"
/>
</div>
</div>
</div>
</ForwardRef>
</ForwardRef>
</span>
</SmartMarker>
<ZoomButtons
map={

View file

@ -18,19 +18,21 @@ exports[`<SmartMarker /> creates a marker on mount 1`] = `
}
}
>
<ForwardRef>
<div
className="mx_Marker mx_Marker_defaultColor"
>
<span>
<ForwardRef>
<div
className="mx_Marker_border"
className="mx_Marker mx_Marker_defaultColor"
>
<div
className="mx_Marker_icon"
/>
className="mx_Marker_border"
>
<div
className="mx_Marker_icon"
/>
</div>
</div>
</div>
</ForwardRef>
</ForwardRef>
</span>
</SmartMarker>
`;
@ -52,18 +54,20 @@ exports[`<SmartMarker /> removes marker on unmount 1`] = `
}
}
>
<ForwardRef>
<div
className="mx_Marker mx_Marker_defaultColor"
>
<span>
<ForwardRef>
<div
className="mx_Marker_border"
className="mx_Marker mx_Marker_defaultColor"
>
<div
className="mx_Marker_icon"
/>
className="mx_Marker_border"
>
<div
className="mx_Marker_icon"
/>
</div>
</div>
</div>
</ForwardRef>
</ForwardRef>
</span>
</SmartMarker>
`;