This repository has been archived by the owner on Sep 11, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 832
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Live location sharing - render users own beacons in timeline (#8296)
* extract location markers into generic Marker Signed-off-by: Kerry Archibald <kerrya@element.io> * wrap marker in smartmarker Signed-off-by: Kerry Archibald <kerrya@element.io> * test smartmarker Signed-off-by: Kerry Archibald <kerrya@element.io> * working map in location body Signed-off-by: Kerry Archibald <kerrya@element.io> * remove skinned sdk Signed-off-by: Kerry Archibald <kerrya@element.io> * use new ZoomButtons in MLocationBody Signed-off-by: Kerry Archibald <kerrya@element.io> * test LocationViewDialog Signed-off-by: Kerry Archibald <kerrya@element.io> * update commentt Signed-off-by: Kerry Archibald <kerrya@element.io> * lint Signed-off-by: Kerry Archibald <kerrya@element.io> * lint Signed-off-by: Kerry Archibald <kerrya@element.io> * extract livetimeremaining into own component Signed-off-by: Kerry Archibald <kerrya@element.io> * extract more beacon state utils Signed-off-by: Kerry Archibald <kerrya@element.io> * update tests for roomlivesharewarning Signed-off-by: Kerry Archibald <kerrya@element.io> * add beacon map and status chin Signed-off-by: Kerry Archibald <kerrya@element.io> * add handling for bubbles Signed-off-by: Kerry Archibald <kerrya@element.io> * tests for BeaconBody Signed-off-by: Kerry Archibald <kerrya@element.io> * move displaystatus check up to mbeaconbody Signed-off-by: Kerry Archibald <kerrya@element.io> * test BeaconStatus Signed-off-by: Kerry Archibald <kerrya@element.io> * rename BeaconStatusChin -> BeaconStatus Signed-off-by: Kerry Archibald <kerrya@element.io> * make BeaconStatus generic Signed-off-by: Kerry Archibald <kerrya@element.io> * lint Signed-off-by: Kerry Archibald <kerrya@element.io> * adjust spinner size Signed-off-by: Kerry Archibald <kerrya@element.io> * lint Signed-off-by: Kerry Archibald <kerrya@element.io> * add static time remaining option to beacon status Signed-off-by: Kerry Archibald <kerrya@element.io> * render time differently for own beacon Signed-off-by: Kerry Archibald <kerrya@element.io> * use children to add actions to BeaconStatus Signed-off-by: Kerry Archibald <kerrya@element.io> * add OwnBeaconStatus wrapper with stop button Signed-off-by: Kerry Archibald <kerrya@element.io> * add error states for own beacon Signed-off-by: Kerry Archibald <kerrya@element.io> * test OwnBeaconStatus Signed-off-by: Kerry Archibald <kerrya@element.io> * move ownbeaconstatus to write dir Signed-off-by: Kerry Archibald <kerrya@element.io> * improve button styling Signed-off-by: Kerry Archibald <kerrya@element.io> * i18n Signed-off-by: Kerry Archibald <kerrya@element.io> * lint Signed-off-by: Kerry Archibald <kerrya@element.io>
- Loading branch information
Kerry
committed
Apr 14, 2022
1 parent
7a1a2c4
commit 1c215e2
Showing
11 changed files
with
440 additions
and
114 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
/* | ||
Copyright 2022 The Matrix.org Foundation C.I.C. | ||
Licensed under the Apache License, Version 2.0 (the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
*/ | ||
|
||
.mx_EventTile[data-layout="bubble"] .mx_OwnBeaconStatus_button { | ||
// align to top to make room for timestamp | ||
// in bubble view | ||
align-self: start; | ||
} | ||
|
||
.mx_OwnBeaconStatus_destructiveButton { | ||
// override button link_inline styles | ||
color: $alert !important; | ||
font-weight: $font-semi-bold !important; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
/* | ||
Copyright 2022 The Matrix.org Foundation C.I.C. | ||
Licensed under the Apache License, Version 2.0 (the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
*/ | ||
|
||
import { Beacon } from 'matrix-js-sdk/src/matrix'; | ||
import React, { HTMLProps } from 'react'; | ||
|
||
import { _t } from '../../../languageHandler'; | ||
import { useOwnLiveBeacons } from '../../../utils/beacon'; | ||
import BeaconStatus from './BeaconStatus'; | ||
import { BeaconDisplayStatus } from './displayStatus'; | ||
import AccessibleButton from '../elements/AccessibleButton'; | ||
|
||
interface Props { | ||
displayStatus: BeaconDisplayStatus; | ||
beacon?: Beacon; | ||
} | ||
|
||
/** | ||
* Wraps BeaconStatus with more capabilities | ||
* for errors and actions available for users own live beacons | ||
*/ | ||
const OwnBeaconStatus: React.FC<Props & HTMLProps<HTMLDivElement>> = ({ | ||
beacon, displayStatus, className, ...rest | ||
}) => { | ||
const { | ||
hasWireError, | ||
hasStopSharingError, | ||
stoppingInProgress, | ||
onStopSharing, | ||
onResetWireError, | ||
} = useOwnLiveBeacons([beacon?.identifier]); | ||
|
||
// combine display status with errors that only occur for user's own beacons | ||
const ownDisplayStatus = hasWireError || hasStopSharingError ? | ||
BeaconDisplayStatus.Error : | ||
displayStatus; | ||
|
||
return <BeaconStatus | ||
className='mx_MBeaconBody_chin' | ||
beacon={beacon} | ||
displayStatus={ownDisplayStatus} | ||
label={_t('Live location enabled')} | ||
displayLiveTimeRemaining | ||
{...rest} | ||
> | ||
{ ownDisplayStatus === BeaconDisplayStatus.Active && <AccessibleButton | ||
data-test-id='beacon-status-stop-beacon' | ||
kind='link' | ||
onClick={onStopSharing} | ||
className='mx_OwnBeaconStatus_button mx_OwnBeaconStatus_destructiveButton' | ||
disabled={stoppingInProgress} | ||
> | ||
{ _t('Stop') } | ||
</AccessibleButton> | ||
} | ||
{ hasWireError && <AccessibleButton | ||
data-test-id='beacon-status-reset-wire-error' | ||
kind='link' | ||
onClick={onResetWireError} | ||
className='mx_OwnBeaconStatus_button mx_OwnBeaconStatus_destructiveButton' | ||
> | ||
{ _t('Retry') } | ||
</AccessibleButton> | ||
} | ||
{ hasStopSharingError && <AccessibleButton | ||
data-test-id='beacon-status-stop-beacon-retry' | ||
kind='link' | ||
onClick={onStopSharing} | ||
className='mx_OwnBeaconStatus_button mx_OwnBeaconStatus_destructiveButton' | ||
> | ||
{ _t('Retry') } | ||
</AccessibleButton> } | ||
</BeaconStatus>; | ||
}; | ||
|
||
export default OwnBeaconStatus; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.