element-web-synapse01pim.gr.jp

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

1422.js.map (81232B)


      1 {"version":3,"file":"bundles/9cacd6575f4c8ee1aedb/1422.js","mappings":"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","sources":["webpack://element-web/./node_modules/@vector-im/compound-design-tokens/assets/web/icons/location-pin.js","webpack://element-web/./src/components/views/location/LiveDurationDropdown.tsx","webpack://element-web/./src/components/views/location/shareLocation.ts","webpack://element-web/./src/components/views/location/LocationPicker.tsx","webpack://element-web/./src/components/views/location/ShareDialogButtons.tsx","webpack://element-web/./src/components/views/location/ShareType.tsx","webpack://element-web/./src/components/views/location/EnableLiveShare.tsx","webpack://element-web/./src/components/views/location/LocationShareMenu.tsx","webpack://element-web/./src/components/views/location/LocationButton.tsx","webpack://element-web/./src/components/views/location/Marker.tsx","webpack://element-web/./src/components/views/rooms/CollapsibleButton.tsx","webpack://element-web/./src/components/views/rooms/EmojiButton.tsx","webpack://element-web/./src/components/views/rooms/MessageComposerButtons.tsx","webpack://element-web/./node_modules/@vector-im/compound-design-tokens/assets/web/icons/mic-on.js","webpack://element-web/./node_modules/@vector-im/compound-design-tokens/assets/web/icons/reaction.js","webpack://element-web/./node_modules/@vector-im/compound-design-tokens/assets/web/icons/sticker.js","webpack://element-web/./node_modules/@vector-im/compound-design-tokens/assets/web/icons/text-formatting.js"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction LocationPinIcon(props, ref) {\n  return /*#__PURE__*/_jsx(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"currentColor\",\n    viewBox: \"0 0 24 24\",\n    ref: ref,\n    ...props,\n    children: /*#__PURE__*/_jsx(\"path\", {\n      d: \"M12 19.35q3.05-2.8 4.525-5.088Q18 11.976 18 10.2q0-2.725-1.738-4.462Q14.526 4 12 4T7.738 5.737Q6 7.476 6 10.2q0 1.775 1.475 4.063Q8.95 16.549 12 19.35m0 1.975a2.1 2.1 0 0 1-.7-.125 1.8 1.8 0 0 1-.625-.375A39 39 0 0 1 7.8 17.9q-1.25-1.425-2.087-2.762-.838-1.338-1.275-2.575Q4 11.325 4 10.2q0-3.75 2.412-5.975T12 2t5.587 2.225T20 10.2q0 1.125-.437 2.363-.438 1.237-1.275 2.574A22 22 0 0 1 16.2 17.9a39 39 0 0 1-2.875 2.925 1.8 1.8 0 0 1-.625.375 2.1 2.1 0 0 1-.7.125M12 12q.825 0 1.412-.588Q14 10.826 14 10t-.588-1.412A1.93 1.93 0 0 0 12 8q-.825 0-1.412.588A1.93 1.93 0 0 0 10 10q0 .825.588 1.412Q11.175 12 12 12\"\n    })\n  });\n}\n;\nLocationPinIcon.displayName = \"LocationPinIcon\";\nexport default forwardRef(LocationPinIcon);","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ReactElement } from \"react\";\n\nimport { formatDuration } from \"../../../DateUtils\";\nimport { _t } from \"../../../languageHandler\";\nimport Dropdown from \"../elements/Dropdown\";\nimport { type NonEmptyArray } from \"../../../@types/common\";\n\nconst DURATION_MS = {\n    fifteenMins: 900000,\n    oneHour: 3600000,\n    eightHours: 28800000,\n};\n\nexport const DEFAULT_DURATION_MS = DURATION_MS.fifteenMins;\n\ninterface Props {\n    timeout: number;\n    onChange: (timeout: number) => void;\n}\n\nconst getLabel = (durationMs: number): string => {\n    return _t(\"location_sharing|live_share_button\", { duration: formatDuration(durationMs) });\n};\n\nconst LiveDurationDropdown: React.FC<Props> = ({ timeout, onChange }) => {\n    const options = Object.values(DURATION_MS).map((duration) => ({\n        key: duration.toString(),\n        duration,\n        label: getLabel(duration),\n    }));\n\n    // timeout is not one of our default values\n    // eg it was set by another client\n    if (!Object.values(DURATION_MS).includes(timeout)) {\n        options.push({\n            key: timeout.toString(),\n            duration: timeout,\n            label: getLabel(timeout),\n        });\n    }\n\n    const onOptionChange = (key: string): void => {\n        // stringified value back to number\n        onChange(+key);\n    };\n\n    return (\n        <Dropdown\n            id=\"live-duration\"\n            data-testid=\"live-duration-dropdown\"\n            label={getLabel(timeout)}\n            value={timeout.toString()}\n            onOptionChange={onOptionChange}\n            className=\"mx_LiveDurationDropdown\"\n        >\n            {\n                options.map(({ key, label }) => (\n                    <div data-testid={`live-duration-option-${key}`} key={key}>\n                        {label}\n                    </div>\n                )) as NonEmptyArray<ReactElement & { key: string }>\n            }\n        </Dropdown>\n    );\n};\n\nexport default LiveDurationDropdown;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport {\n    type MatrixClient,\n    type IEventRelation,\n    type MatrixError,\n    THREAD_RELATION_TYPE,\n    ContentHelpers,\n    LocationAssetType,\n} from \"matrix-js-sdk/src/matrix\";\nimport { type RoomMessageEventContent } from \"matrix-js-sdk/src/types\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport { _t } from \"../../../languageHandler\";\nimport Modal from \"../../../Modal\";\nimport QuestionDialog, { type IQuestionDialogProps } from \"../dialogs/QuestionDialog\";\nimport SdkConfig from \"../../../SdkConfig\";\nimport { OwnBeaconStore } from \"../../../stores/OwnBeaconStore\";\nimport { doMaybeLocalRoomAction } from \"../../../utils/local-room\";\n\nexport enum LocationShareType {\n    Own = \"Own\",\n    Pin = \"Pin\",\n    Live = \"Live\",\n}\n\nexport type LocationShareProps = {\n    timeout?: number;\n    uri?: string;\n    timestamp?: number;\n};\n\n// default duration to 5min for now\nconst DEFAULT_LIVE_DURATION = 300000;\n\nexport type ShareLocationFn = (props: LocationShareProps) => Promise<void>;\n\nconst getPermissionsErrorParams = (\n    shareType: LocationShareType,\n): {\n    errorMessage: string;\n    modalParams: IQuestionDialogProps;\n} => {\n    const errorMessage =\n        shareType === LocationShareType.Live\n            ? \"Insufficient permissions to start sharing your live location\"\n            : \"Insufficient permissions to send your location\";\n\n    const modalParams = {\n        title: _t(\"location_sharing|error_no_perms_title\"),\n        description: _t(\"location_sharing|error_no_perms_description\"),\n        button: _t(\"action|ok\"),\n        hasCancelButton: false,\n        onFinished: () => {}, // NOOP\n    };\n    return { modalParams, errorMessage };\n};\n\nconst getDefaultErrorParams = (\n    shareType: LocationShareType,\n    openMenu: () => void,\n): {\n    errorMessage: string;\n    modalParams: IQuestionDialogProps;\n} => {\n    const errorMessage =\n        shareType === LocationShareType.Live\n            ? \"We couldn't start sharing your live location\"\n            : \"We couldn't send your location\";\n    const modalParams = {\n        title: _t(\"location_sharing|error_send_title\"),\n        description: _t(\"location_sharing|error_send_description\", {\n            brand: SdkConfig.get().brand,\n        }),\n        button: _t(\"action|try_again\"),\n        cancelButton: _t(\"action|cancel\"),\n        onFinished: (tryAgain: boolean) => {\n            if (tryAgain) {\n                openMenu();\n            }\n        },\n    };\n    return { modalParams, errorMessage };\n};\n\nconst handleShareError = (error: unknown, openMenu: () => void, shareType: LocationShareType): void => {\n    const { modalParams, errorMessage } =\n        (error as MatrixError).errcode === \"M_FORBIDDEN\"\n            ? getPermissionsErrorParams(shareType)\n            : getDefaultErrorParams(shareType, openMenu);\n\n    logger.error(errorMessage, error);\n\n    Modal.createDialog(QuestionDialog, modalParams);\n};\n\nexport const shareLiveLocation =\n    (client: MatrixClient, roomId: string, displayName: string, openMenu: () => void): ShareLocationFn =>\n    async ({ timeout }): Promise<void> => {\n        const description = _t(\"location_sharing|live_description\", { displayName });\n        try {\n            await OwnBeaconStore.instance.createLiveBeacon(\n                roomId,\n                ContentHelpers.makeBeaconInfoContent(\n                    timeout ?? DEFAULT_LIVE_DURATION,\n                    true /* isLive */,\n                    description,\n                    LocationAssetType.Self,\n                ),\n            );\n        } catch (error) {\n            handleShareError(error, openMenu, LocationShareType.Live);\n        }\n    };\n\nexport const shareLocation =\n    (\n        client: MatrixClient,\n        roomId: string,\n        shareType: LocationShareType,\n        relation: IEventRelation | undefined,\n        openMenu: () => void,\n    ): ShareLocationFn =>\n    async ({ uri, timestamp }): Promise<void> => {\n        if (!uri) return;\n        try {\n            const threadId = (relation?.rel_type === THREAD_RELATION_TYPE.name && relation?.event_id) || null;\n            const assetType = shareType === LocationShareType.Pin ? LocationAssetType.Pin : LocationAssetType.Self;\n            const content = ContentHelpers.makeLocationContent(\n                undefined,\n                uri,\n                timestamp,\n                undefined,\n                assetType,\n            ) as RoomMessageEventContent;\n            await doMaybeLocalRoomAction(\n                roomId,\n                (actualRoomId: string) => client.sendMessage(actualRoomId, threadId, content),\n                client,\n            );\n        } catch (error) {\n            handleShareError(error, openMenu, shareType);\n        }\n    };\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type SyntheticEvent } from \"react\";\nimport maplibregl, { type MapMouseEvent } from \"maplibre-gl\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { type RoomMember, ClientEvent, type IClientWellKnown } from \"matrix-js-sdk/src/matrix\";\n\nimport { _t } from \"../../../languageHandler\";\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport Modal from \"../../../Modal\";\nimport { tileServerFromWellKnown } from \"../../../utils/WellKnownUtils\";\nimport { type GenericPosition, genericPositionFromGeolocation, getGeoUri } from \"../../../utils/beacon\";\nimport { LocationShareError, findMapStyleUrl, positionFailureMessage } from \"../../../utils/location\";\nimport ErrorDialog from \"../dialogs/ErrorDialog\";\nimport AccessibleButton from \"../elements/AccessibleButton\";\nimport { MapError } from \"./MapError\";\nimport LiveDurationDropdown, { DEFAULT_DURATION_MS } from \"./LiveDurationDropdown\";\nimport { LocationShareType, type ShareLocationFn } from \"./shareLocation\";\nimport Marker from \"./Marker\";\n\nexport interface ILocationPickerProps {\n    sender: RoomMember;\n    shareType: LocationShareType;\n    onChoose: ShareLocationFn;\n    onFinished(ev?: SyntheticEvent): void;\n}\n\ninterface IState {\n    timeout: number;\n    position?: GenericPosition;\n    error?: LocationShareError;\n}\n\nconst isSharingOwnLocation = (shareType: LocationShareType): boolean =>\n    shareType === LocationShareType.Own || shareType === LocationShareType.Live;\n\nclass LocationPicker extends React.Component<ILocationPickerProps, IState> {\n    public static contextType = MatrixClientContext;\n    declare public context: React.ContextType<typeof MatrixClientContext>;\n    private map?: maplibregl.Map;\n    private geolocate?: maplibregl.GeolocateControl;\n    private marker?: maplibregl.Marker;\n\n    public constructor(props: ILocationPickerProps) {\n        super(props);\n\n        this.state = {\n            position: undefined,\n            timeout: DEFAULT_DURATION_MS,\n            error: undefined,\n        };\n    }\n\n    private getMarkerId = (): string => {\n        return \"mx_MLocationPicker_marker\";\n    };\n\n    public componentDidMount(): void {\n        this.context.on(ClientEvent.ClientWellKnown, this.updateStyleUrl);\n\n        try {\n            this.map = new maplibregl.Map({\n                container: \"mx_LocationPicker_map\",\n                style: findMapStyleUrl(this.context),\n                center: [0, 0],\n                zoom: 1,\n            });\n\n            // Add geolocate control to the map.\n            this.geolocate = new maplibregl.GeolocateControl({\n                positionOptions: {\n                    enableHighAccuracy: true,\n                },\n                trackUserLocation: false,\n            });\n\n            this.map.addControl(this.geolocate);\n\n            this.map.on(\"error\", (e) => {\n                logger.error(\n                    \"Failed to load map: check map_style_url in config.json has a valid URL and API key\",\n                    e.error,\n                );\n                this.setState({ error: LocationShareError.MapStyleUrlNotReachable });\n            });\n\n            this.map.on(\"load\", () => {\n                this.geolocate?.trigger();\n            });\n\n            this.geolocate.on(\"error\", this.onGeolocateError);\n\n            if (isSharingOwnLocation(this.props.shareType)) {\n                this.geolocate.on(\"geolocate\", this.onGeolocate);\n            }\n\n            if (this.props.shareType === LocationShareType.Pin) {\n                const navigationControl = new maplibregl.NavigationControl({\n                    showCompass: false,\n                    showZoom: true,\n                });\n                this.map.addControl(navigationControl, \"bottom-right\");\n                this.map.on(\"click\", this.onClick);\n            }\n        } catch (e) {\n            logger.error(\"Failed to render map\", e);\n            const errorMessage = (e as Error)?.message;\n            let errorType;\n            if (errorMessage === LocationShareError.MapStyleUrlNotConfigured)\n                errorType = LocationShareError.MapStyleUrlNotConfigured;\n            else if (errorMessage.includes(\"Failed to initialize WebGL\"))\n                errorType = LocationShareError.WebGLNotEnabled;\n            else errorType = LocationShareError.Default;\n            this.setState({ error: errorType });\n        }\n    }\n\n    public componentWillUnmount(): void {\n        this.geolocate?.off(\"error\", this.onGeolocateError);\n        this.geolocate?.off(\"geolocate\", this.onGeolocate);\n        this.map?.off(\"click\", this.onClick);\n        this.context.off(ClientEvent.ClientWellKnown, this.updateStyleUrl);\n    }\n\n    private addMarkerToMap = (): void => {\n        this.marker = new maplibregl.Marker({\n            element: document.getElementById(this.getMarkerId()) ?? undefined,\n            anchor: \"bottom\",\n            offset: [0, -1],\n        })\n            .setLngLat(new maplibregl.LngLat(0, 0))\n            .addTo(this.map!);\n    };\n\n    private updateStyleUrl = (clientWellKnown: IClientWellKnown): void => {\n        const style = tileServerFromWellKnown(clientWellKnown)?.[\"map_style_url\"];\n        if (style) {\n            this.map?.setStyle(style);\n        }\n    };\n\n    private onGeolocate = (position: GeolocationPosition): void => {\n        if (!this.marker) {\n            this.addMarkerToMap();\n        }\n        this.setState({ position: genericPositionFromGeolocation(position) });\n        this.marker?.setLngLat(new maplibregl.LngLat(position.coords.longitude, position.coords.latitude));\n    };\n\n    private onClick = (event: MapMouseEvent): void => {\n        if (!this.marker) {\n            this.addMarkerToMap();\n        }\n        this.marker?.setLngLat(event.lngLat);\n        this.setState({\n            position: {\n                timestamp: Date.now(),\n                latitude: event.lngLat.lat,\n                longitude: event.lngLat.lng,\n            },\n        });\n    };\n\n    private onGeolocateError = (e: GeolocationPositionError): void => {\n        logger.error(\"Could not fetch location\", e);\n        // close the dialog and show an error when trying to share own location\n        // pin drop location without permissions is ok\n        if (isSharingOwnLocation(this.props.shareType)) {\n            this.props.onFinished();\n            Modal.createDialog(ErrorDialog, {\n                title: _t(\"location_sharing|error_fetch_location\"),\n                description: positionFailureMessage(e.code),\n            });\n        }\n\n        if (this.geolocate) {\n            this.map?.removeControl(this.geolocate);\n        }\n    };\n\n    private onTimeoutChange = (timeout: number): void => {\n        this.setState({ timeout });\n    };\n\n    private onOk = (): void => {\n        const { timeout, position } = this.state;\n\n        this.props.onChoose(\n            position\n                ? { uri: getGeoUri(position), timestamp: position.timestamp, timeout }\n                : {\n                      timeout,\n                  },\n        );\n        this.props.onFinished();\n    };\n\n    public render(): React.ReactNode {\n        if (this.state.error) {\n            return (\n                <div className=\"mx_LocationPicker mx_LocationPicker_hasError\">\n                    <MapError error={this.state.error} onFinished={this.props.onFinished} />\n                </div>\n            );\n        }\n\n        return (\n            <div className=\"mx_LocationPicker\">\n                <div id=\"mx_LocationPicker_map\" />\n\n                {this.props.shareType === LocationShareType.Pin && (\n                    <div className=\"mx_LocationPicker_pinText\">\n                        <span>\n                            {this.state.position\n                                ? _t(\"location_sharing|click_move_pin\")\n                                : _t(\"location_sharing|click_drop_pin\")}\n                        </span>\n                    </div>\n                )}\n                <div className=\"mx_LocationPicker_footer\">\n                    <form onSubmit={this.onOk}>\n                        {this.props.shareType === LocationShareType.Live && (\n                            <LiveDurationDropdown onChange={this.onTimeoutChange} timeout={this.state.timeout} />\n                        )}\n                        <AccessibleButton\n                            data-testid=\"location-picker-submit-button\"\n                            type=\"submit\"\n                            element=\"button\"\n                            kind=\"primary\"\n                            className=\"mx_LocationPicker_submitButton\"\n                            disabled={!this.state.position}\n                            onClick={this.onOk}\n                        >\n                            {_t(\"location_sharing|share_button\")}\n                        </AccessibleButton>\n                    </form>\n                </div>\n                <div id={this.getMarkerId()}>\n                    {/*\n                    maplibregl hijacks the div above to style the marker\n                    it must be in the dom when the map is initialised\n                    and keep a consistent class\n                    we want to hide the marker until it is set in the case of pin drop\n                    so hide the internal visible elements\n                    */}\n\n                    {!!this.marker && (\n                        <Marker\n                            roomMember={isSharingOwnLocation(this.props.shareType) ? this.props.sender : undefined}\n                            useMemberColor={this.props.shareType === LocationShareType.Live}\n                        />\n                    )}\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default LocationPicker;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\nimport CloseIcon from \"@vector-im/compound-design-tokens/assets/web/icons/close\";\nimport BackIcon from \"@vector-im/compound-design-tokens/assets/web/icons/chevron-left\";\n\nimport AccessibleButton from \"../elements/AccessibleButton\";\nimport { _t } from \"../../../languageHandler\";\n\ninterface Props {\n    onCancel: () => void;\n    onBack: () => void;\n    displayBack?: boolean;\n}\n\nconst ShareDialogButtons: React.FC<Props> = ({ onBack, onCancel, displayBack }) => {\n    return (\n        <div className=\"mx_ShareDialogButtons\">\n            {displayBack && (\n                <AccessibleButton\n                    className=\"mx_ShareDialogButtons_button left\"\n                    data-testid=\"share-dialog-buttons-back\"\n                    aria-label={_t(\"action|back\")}\n                    onClick={onBack}\n                    element=\"button\"\n                >\n                    <BackIcon className=\"mx_ShareDialogButtons_button-icon\" />\n                </AccessibleButton>\n            )}\n            <AccessibleButton\n                className=\"mx_ShareDialogButtons_button right\"\n                data-testid=\"share-dialog-buttons-cancel\"\n                aria-label={_t(\"action|close\")}\n                onClick={onCancel}\n                element=\"button\"\n            >\n                <CloseIcon className=\"mx_ShareDialogButtons_button-icon\" />\n            </AccessibleButton>\n        </div>\n    );\n};\n\nexport default ShareDialogButtons;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type HTMLAttributes, useContext } from \"react\";\nimport LocationIcon from \"@vector-im/compound-design-tokens/assets/web/icons/location-pin-solid\";\n\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport { _t } from \"../../../languageHandler\";\nimport { OwnProfileStore } from \"../../../stores/OwnProfileStore\";\nimport BaseAvatar from \"../avatars/BaseAvatar\";\nimport AccessibleButton, { type ButtonEvent } from \"../elements/AccessibleButton\";\nimport Heading from \"../typography/Heading\";\nimport { LocationShareType } from \"./shareLocation\";\nimport StyledLiveBeaconIcon from \"../beacon/StyledLiveBeaconIcon\";\n\nconst UserAvatar: React.FC = () => {\n    const matrixClient = useContext(MatrixClientContext);\n    const userId = matrixClient.getSafeUserId();\n    const displayName = OwnProfileStore.instance.displayName ?? undefined;\n    // 40 - 2px border\n    const avatarSize = \"36px\";\n    const avatarUrl = OwnProfileStore.instance.getHttpAvatarUrl(parseInt(avatarSize, 10)) ?? undefined;\n\n    return (\n        <div className={`mx_ShareType_option-icon ${LocationShareType.Own}`}>\n            <BaseAvatar\n                idName={userId}\n                name={displayName}\n                url={avatarUrl}\n                size={avatarSize}\n                className=\"mx_UserMenu_userAvatar_BaseAvatar\"\n            />\n        </div>\n    );\n};\n\ntype ShareTypeOptionProps = HTMLAttributes<Element> & {\n    label: string;\n    shareType: LocationShareType;\n    onClick?: ((e: ButtonEvent) => void | Promise<void>) | null;\n};\nconst ShareTypeOption: React.FC<ShareTypeOptionProps> = ({ onClick, label, shareType, ...rest }) => (\n    <AccessibleButton element=\"button\" className=\"mx_ShareType_option\" onClick={onClick ?? null} {...rest}>\n        {shareType === LocationShareType.Own && <UserAvatar />}\n        {shareType === LocationShareType.Pin && (\n            <LocationIcon className={`mx_ShareType_option-icon ${LocationShareType.Pin}`} />\n        )}\n        {shareType === LocationShareType.Live && (\n            <StyledLiveBeaconIcon className={`mx_ShareType_option-icon ${LocationShareType.Live}`} />\n        )}\n\n        {label}\n    </AccessibleButton>\n);\n\ninterface Props {\n    setShareType: (shareType: LocationShareType) => void;\n    enabledShareTypes: LocationShareType[];\n}\nconst ShareType: React.FC<Props> = ({ setShareType, enabledShareTypes }) => {\n    const labels = {\n        [LocationShareType.Own]: _t(\"location_sharing|share_type_own\"),\n        [LocationShareType.Live]: _t(\"location_sharing|share_type_live\"),\n        [LocationShareType.Pin]: _t(\"location_sharing|share_type_pin\"),\n    };\n    return (\n        <div className=\"mx_ShareType\">\n            <LocationIcon className=\"mx_ShareType_badge\" />\n            <Heading className=\"mx_ShareType_heading\" size=\"3\">\n                {_t(\"location_sharing|share_type_prompt\")}\n            </Heading>\n            <div className=\"mx_ShareType_wrapper_options\">\n                {enabledShareTypes.map((type) => (\n                    <ShareTypeOption\n                        key={type}\n                        onClick={() => setShareType(type)}\n                        label={labels[type]}\n                        shareType={type}\n                        data-testid={`share-location-option-${type}`}\n                    />\n                ))}\n            </div>\n        </div>\n    );\n};\n\nexport default ShareType;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ChangeEventHandler, type FormEventHandler, useCallback, useState } from \"react\";\nimport { SettingsToggleInput, Form, Button } from \"@vector-im/compound-web\";\n\nimport { _t } from \"../../../languageHandler\";\nimport StyledLiveBeaconIcon from \"../beacon/StyledLiveBeaconIcon\";\nimport Heading from \"../typography/Heading\";\n\ninterface Props {\n    onSubmit: () => void;\n}\n\nexport const EnableLiveShare: React.FC<Props> = ({ onSubmit }) => {\n    const [isEnabled, setEnabled] = useState(false);\n\n    const onEnabledChanged = useCallback<ChangeEventHandler<HTMLInputElement>>(\n        (e) => setEnabled(e.target.checked),\n        [setEnabled],\n    );\n\n    const onSubmitForm = useCallback<FormEventHandler>(\n        (evt) => {\n            evt.preventDefault();\n            evt.stopPropagation();\n            if (isEnabled) {\n                onSubmit();\n            }\n        },\n        [isEnabled, onSubmit],\n    );\n\n    return (\n        <div data-testid=\"location-picker-enable-live-share\" className=\"mx_EnableLiveShare\">\n            <StyledLiveBeaconIcon className=\"mx_EnableLiveShare_icon\" />\n            <Heading className=\"mx_EnableLiveShare_heading\" size=\"3\">\n                {_t(\"location_sharing|live_enable_heading\")}\n            </Heading>\n            <p className=\"mx_EnableLiveShare_description\">{_t(\"location_sharing|live_enable_description\")}</p>\n            <Form.Root onSubmit={onSubmitForm}>\n                <SettingsToggleInput\n                    name=\"enable-live-share-toggle\"\n                    checked={isEnabled}\n                    onChange={onEnabledChanged}\n                    label={_t(\"location_sharing|live_toggle_label\")}\n                />\n                <Button className=\"mx_EnableLiveShare_button\" kind=\"primary\" disabled={!isEnabled}>\n                    {_t(\"action|ok\")}\n                </Button>\n            </Form.Root>\n        </div>\n    );\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type SyntheticEvent, useContext, useState } from \"react\";\nimport { type Room, type IEventRelation } from \"matrix-js-sdk/src/matrix\";\n\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport ContextMenu, { type MenuProps } from \"../../structures/ContextMenu\";\nimport LocationPicker, { type ILocationPickerProps } from \"./LocationPicker\";\nimport { shareLiveLocation, shareLocation, LocationShareType } from \"./shareLocation\";\nimport SettingsStore from \"../../../settings/SettingsStore\";\nimport ShareDialogButtons from \"./ShareDialogButtons\";\nimport ShareType from \"./ShareType\";\nimport { OwnProfileStore } from \"../../../stores/OwnProfileStore\";\nimport { EnableLiveShare } from \"./EnableLiveShare\";\nimport { useFeatureEnabled } from \"../../../hooks/useSettings\";\nimport { SettingLevel } from \"../../../settings/SettingLevel\";\n\ntype Props = Omit<ILocationPickerProps, \"onChoose\" | \"shareType\"> & {\n    onFinished: (ev?: SyntheticEvent) => void;\n    menuPosition: MenuProps;\n    openMenu: () => void;\n    roomId: Room[\"roomId\"];\n    relation?: IEventRelation;\n};\n\nconst getEnabledShareTypes = (relation?: IEventRelation): LocationShareType[] => {\n    const enabledShareTypes = [LocationShareType.Own];\n\n    // live locations cannot have a relation\n    // hide the option when composer has a relation\n    if (!relation) {\n        enabledShareTypes.push(LocationShareType.Live);\n    }\n\n    enabledShareTypes.push(LocationShareType.Pin);\n\n    return enabledShareTypes;\n};\n\nconst LocationShareMenu: React.FC<Props> = ({ menuPosition, onFinished, sender, roomId, openMenu, relation }) => {\n    const matrixClient = useContext(MatrixClientContext);\n    const enabledShareTypes = getEnabledShareTypes(relation);\n    const isLiveShareEnabled = useFeatureEnabled(\"feature_location_share_live\");\n\n    const multipleShareTypesEnabled = enabledShareTypes.length > 1;\n\n    const [shareType, setShareType] = useState<LocationShareType | undefined>(\n        multipleShareTypesEnabled ? undefined : LocationShareType.Own,\n    );\n\n    const displayName = OwnProfileStore.instance.displayName;\n    const userId = matrixClient.getSafeUserId();\n\n    const onLocationSubmit =\n        shareType === LocationShareType.Live\n            ? shareLiveLocation(matrixClient, roomId, displayName || userId, openMenu)\n            : shareLocation(matrixClient, roomId, shareType ?? LocationShareType.Own, relation, openMenu);\n\n    const onLiveShareEnableSubmit = (): void => {\n        SettingsStore.setValue(\"feature_location_share_live\", null, SettingLevel.DEVICE, true);\n    };\n\n    const shouldAdvertiseLiveLabsFlag = shareType === LocationShareType.Live && !isLiveShareEnabled;\n\n    return (\n        <ContextMenu {...menuPosition} onFinished={onFinished} managed={false}>\n            <div className=\"mx_LocationShareMenu\">\n                {shouldAdvertiseLiveLabsFlag && <EnableLiveShare onSubmit={onLiveShareEnableSubmit} />}\n                {!shouldAdvertiseLiveLabsFlag && !!shareType && (\n                    <LocationPicker\n                        sender={sender}\n                        shareType={shareType}\n                        onChoose={onLocationSubmit}\n                        onFinished={onFinished}\n                    />\n                )}\n                {!shareType && <ShareType setShareType={setShareType} enabledShareTypes={enabledShareTypes} />}\n                <ShareDialogButtons\n                    displayBack={!!shareType && multipleShareTypesEnabled}\n                    onBack={() => setShareType(undefined)}\n                    onCancel={onFinished}\n                />\n            </div>\n        </ContextMenu>\n    );\n};\n\nexport default LocationShareMenu;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ReactNode, type SyntheticEvent, useContext } from \"react\";\nimport classNames from \"classnames\";\nimport { type RoomMember, type IEventRelation } from \"matrix-js-sdk/src/matrix\";\nimport { LocationPinIcon } from \"@vector-im/compound-design-tokens/assets/web/icons\";\n\nimport { _t } from \"../../../languageHandler\";\nimport { CollapsibleButton } from \"../rooms/CollapsibleButton\";\nimport { aboveLeftOf, useContextMenu, type MenuProps } from \"../../structures/ContextMenu\";\nimport { OverflowMenuContext } from \"../rooms/MessageComposerButtons\";\nimport LocationShareMenu from \"./LocationShareMenu\";\n\nexport interface IProps {\n    roomId: string;\n    sender: RoomMember;\n    menuPosition?: MenuProps;\n    relation?: IEventRelation;\n}\n\nconst LocationButton: React.FC<IProps> = ({ roomId, sender, menuPosition, relation }) => {\n    const overflowMenuCloser = useContext(OverflowMenuContext);\n    const [menuDisplayed, button, openMenu, closeMenu] = useContextMenu();\n\n    const _onFinished = (ev?: SyntheticEvent): void => {\n        closeMenu(ev);\n        overflowMenuCloser?.();\n    };\n\n    let contextMenu: ReactNode = null;\n    if (menuDisplayed) {\n        const position = menuPosition ?? (button.current && aboveLeftOf(button.current.getBoundingClientRect())) ?? {};\n\n        contextMenu = (\n            <LocationShareMenu\n                menuPosition={position}\n                onFinished={_onFinished}\n                sender={sender}\n                roomId={roomId}\n                openMenu={openMenu}\n                relation={relation}\n            />\n        );\n    }\n\n    const className = classNames(\"mx_MessageComposer_button\", {\n        mx_MessageComposer_button_highlight: menuDisplayed,\n    });\n\n    return (\n        <React.Fragment>\n            <CollapsibleButton className={className} onClick={openMenu} title={_t(\"common|location\")} inputRef={button}>\n                <LocationPinIcon />\n            </CollapsibleButton>\n\n            {contextMenu}\n        </React.Fragment>\n    );\n};\n\nexport default LocationButton;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type JSX, type ReactNode, type Ref, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { type RoomMember } from \"matrix-js-sdk/src/matrix\";\nimport LocationIcon from \"@vector-im/compound-design-tokens/assets/web/icons/location-pin-solid\";\n\nimport { getUserNameColorClass } from \"../../../utils/FormattingUtils\";\nimport MemberAvatar from \"../avatars/MemberAvatar\";\n\ninterface Props {\n    id?: string;\n    // renders MemberAvatar when provided\n    roomMember?: RoomMember;\n    // use member text color as background\n    useMemberColor?: boolean;\n    tooltip?: ReactNode;\n    ref?: Ref<HTMLDivElement>;\n}\n\n/**\n * Wrap with tooltip handlers when\n * tooltip is truthy\n */\nconst OptionalTooltip: React.FC<{\n    tooltip?: ReactNode;\n    children: ReactNode;\n}> = ({ tooltip, children }) => {\n    const [isVisible, setIsVisible] = useState(false);\n    if (!tooltip) {\n        return <>{children}</>;\n    }\n\n    const show = (): void => setIsVisible(true);\n    const hide = (): void => setIsVisible(false);\n    const toggleVisibility = (e: React.MouseEvent<HTMLDivElement, MouseEvent>): void => {\n        // stop map from zooming in on click\n        e.stopPropagation();\n        setIsVisible(!isVisible);\n    };\n\n    return (\n        <div onMouseEnter={show} onClick={toggleVisibility} onMouseLeave={hide}>\n            {children}\n            {isVisible && tooltip}\n        </div>\n    );\n};\n\n/**\n * Generic location marker\n */\nconst Marker = ({ id, roomMember, useMemberColor, tooltip, ref }: Props): JSX.Element => {\n    const memberColorClass = useMemberColor && roomMember ? getUserNameColorClass(roomMember.userId) : \"\";\n    return (\n        <div\n            ref={ref}\n            id={id}\n            className={classNames(\"mx_Marker\", memberColorClass, {\n                mx_Marker_defaultColor: !memberColorClass,\n            })}\n        >\n            <OptionalTooltip tooltip={tooltip}>\n                <div className=\"mx_Marker_border\">\n                    {roomMember ? (\n                        <MemberAvatar\n                            member={roomMember}\n                            size=\"36px\"\n                            viewUserOnClick={false}\n                            // no mxid on hover when marker has tooltip\n                            hideTitle={!!tooltip}\n                        />\n                    ) : (\n                        <LocationIcon className=\"mx_Marker_icon\" />\n                    )}\n                </div>\n            </OptionalTooltip>\n        </div>\n    );\n};\n\nexport default Marker;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type RefObject, useContext } from \"react\";\n\nimport AccessibleButton, { type ButtonProps } from \"../elements/AccessibleButton\";\nimport { OverflowMenuContext } from \"./MessageComposerButtons\";\nimport { IconizedContextMenuOption } from \"../context_menus/IconizedContextMenu\";\n\ninterface Props extends Omit<ButtonProps<\"div\">, \"element\"> {\n    inputRef?: RefObject<HTMLElement | null>;\n    title: string;\n}\n\nexport const CollapsibleButton: React.FC<Props> = ({ title, children, className, inputRef, ...props }) => {\n    const inOverflowMenu = !!useContext(OverflowMenuContext);\n    if (inOverflowMenu) {\n        return <IconizedContextMenuOption {...props} icon={children} label={title} inputRef={inputRef} />;\n    }\n\n    return (\n        <AccessibleButton {...props} title={title} className={className} ref={inputRef}>\n            {children}\n        </AccessibleButton>\n    );\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport classNames from \"classnames\";\nimport React, { type JSX, useContext } from \"react\";\nimport { ReactionIcon } from \"@vector-im/compound-design-tokens/assets/web/icons\";\n\nimport { _t } from \"../../../languageHandler\";\nimport ContextMenu, { aboveLeftOf, type MenuProps, useContextMenu } from \"../../structures/ContextMenu\";\nimport EmojiPicker from \"../emojipicker/EmojiPicker\";\nimport { CollapsibleButton } from \"./CollapsibleButton\";\nimport { OverflowMenuContext } from \"./MessageComposerButtons\";\n\ninterface IEmojiButtonProps {\n    addEmoji: (unicode: string) => boolean;\n    menuPosition?: MenuProps;\n    className?: string;\n}\n\nexport function EmojiButton({ addEmoji, menuPosition, className }: IEmojiButtonProps): JSX.Element {\n    const overflowMenuCloser = useContext(OverflowMenuContext);\n    const [menuDisplayed, button, openMenu, closeMenu] = useContextMenu();\n\n    let contextMenu: React.ReactElement | null = null;\n    if (menuDisplayed && button.current) {\n        const position = menuPosition ?? aboveLeftOf(button.current.getBoundingClientRect());\n        const onFinished = (): void => {\n            closeMenu();\n            overflowMenuCloser?.();\n        };\n\n        contextMenu = (\n            <ContextMenu {...position} onFinished={onFinished} managed={false} focusLock>\n                <EmojiPicker onChoose={addEmoji} onFinished={onFinished} />\n            </ContextMenu>\n        );\n    }\n\n    const computedClassName = classNames(\"mx_EmojiButton\", className, {\n        mx_EmojiButton_highlight: menuDisplayed,\n    });\n\n    // TODO: replace ContextMenuTooltipButton with a unified representation of\n    // the header buttons and the right panel buttons\n    return (\n        <>\n            <CollapsibleButton\n                className={computedClassName}\n                onClick={openMenu}\n                title={_t(\"common|emoji\")}\n                inputRef={button}\n            >\n                <ReactionIcon />\n            </CollapsibleButton>\n\n            {contextMenu}\n        </>\n    );\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport classNames from \"classnames\";\nimport {\n    type IEventRelation,\n    type Room,\n    type MatrixClient,\n    THREAD_RELATION_TYPE,\n    M_POLL_START,\n} from \"matrix-js-sdk/src/matrix\";\nimport React, { type JSX, createContext, type ReactElement, type ReactNode, useContext, useRef } from \"react\";\nimport {\n    AttachmentIcon,\n    MicOnIcon,\n    OverflowHorizontalIcon,\n    PollsIcon,\n    StickerIcon,\n    TextFormattingIcon,\n} from \"@vector-im/compound-design-tokens/assets/web/icons\";\n\nimport { _t } from \"../../../languageHandler\";\nimport { CollapsibleButton } from \"./CollapsibleButton\";\nimport { type MenuProps } from \"../../structures/ContextMenu\";\nimport dis from \"../../../dispatcher/dispatcher\";\nimport ErrorDialog from \"../dialogs/ErrorDialog\";\nimport { LocationButton } from \"../location\";\nimport Modal from \"../../../Modal\";\nimport PollCreateDialog from \"../elements/PollCreateDialog\";\nimport { MatrixClientPeg } from \"../../../MatrixClientPeg\";\nimport ContentMessages from \"../../../ContentMessages\";\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport { useDispatcher } from \"../../../hooks/useDispatcher\";\nimport { chromeFileInputFix } from \"../../../utils/BrowserWorkarounds\";\nimport IconizedContextMenu, { IconizedContextMenuOptionList } from \"../context_menus/IconizedContextMenu\";\nimport { EmojiButton } from \"./EmojiButton\";\nimport { filterBoolean } from \"../../../utils/arrays\";\nimport { useSettingValue } from \"../../../hooks/useSettings\";\nimport AccessibleButton, { type ButtonEvent } from \"../elements/AccessibleButton\";\nimport { useScopedRoomContext } from \"../../../contexts/ScopedRoomContext.tsx\";\n\ninterface IProps {\n    addEmoji: (emoji: string) => boolean;\n    haveRecording: boolean;\n    isMenuOpen: boolean;\n    isStickerPickerOpen: boolean;\n    menuPosition?: MenuProps;\n    onRecordStartEndClick: () => void;\n    relation?: IEventRelation;\n    setStickerPickerOpen: (isStickerPickerOpen: boolean) => void;\n    showLocationButton: boolean;\n    showPollsButton: boolean;\n    showStickersButton: boolean;\n    toggleButtonMenu: () => void;\n    isRichTextEnabled: boolean;\n    onComposerModeClick: () => void;\n}\n\ntype OverflowMenuCloser = () => void;\nexport const OverflowMenuContext = createContext<OverflowMenuCloser | null>(null);\n\nconst MessageComposerButtons: React.FC<IProps> = (props: IProps) => {\n    const matrixClient = useContext(MatrixClientContext);\n    const { room, narrow } = useScopedRoomContext(\"room\", \"narrow\");\n\n    const isWysiwygLabEnabled = useSettingValue(\"feature_wysiwyg_composer\");\n\n    if (!matrixClient || !room || props.haveRecording) {\n        return null;\n    }\n\n    let mainButtons: ReactNode[];\n    let moreButtons: ReactNode[];\n    if (narrow) {\n        mainButtons = [\n            isWysiwygLabEnabled ? (\n                <ComposerModeButton\n                    key=\"composerModeButton\"\n                    isRichTextEnabled={props.isRichTextEnabled}\n                    onClick={props.onComposerModeClick}\n                />\n            ) : (\n                emojiButton(props)\n            ),\n        ];\n        moreButtons = [\n            uploadButton(), // props passed via UploadButtonContext\n            showStickersButton(props),\n            voiceRecordingButton(props, narrow),\n            props.showPollsButton ? pollButton(room, props.relation) : null,\n            showLocationButton(props, room, matrixClient),\n        ];\n    } else {\n        mainButtons = [\n            isWysiwygLabEnabled ? (\n                <ComposerModeButton\n                    key=\"composerModeButton\"\n                    isRichTextEnabled={props.isRichTextEnabled}\n                    onClick={props.onComposerModeClick}\n                />\n            ) : (\n                emojiButton(props)\n            ),\n            uploadButton(), // props passed via UploadButtonContext\n        ];\n        moreButtons = [\n            showStickersButton(props),\n            voiceRecordingButton(props, narrow),\n            props.showPollsButton ? pollButton(room, props.relation) : null,\n            showLocationButton(props, room, matrixClient),\n        ];\n    }\n\n    mainButtons = filterBoolean(mainButtons);\n    moreButtons = filterBoolean(moreButtons);\n\n    const moreOptionsClasses = classNames({\n        mx_MessageComposer_button: true,\n        mx_MessageComposer_buttonMenu: true,\n        mx_MessageComposer_closeButtonMenu: props.isMenuOpen,\n    });\n\n    return (\n        <UploadButtonContextProvider roomId={room.roomId} relation={props.relation}>\n            {mainButtons}\n            {moreButtons.length > 0 && (\n                <AccessibleButton\n                    className={moreOptionsClasses}\n                    onClick={props.toggleButtonMenu}\n                    title={_t(\"quick_settings|sidebar_settings\")}\n                >\n                    <OverflowHorizontalIcon />\n                </AccessibleButton>\n            )}\n            {props.isMenuOpen && (\n                <IconizedContextMenu\n                    onFinished={props.toggleButtonMenu}\n                    {...props.menuPosition}\n                    wrapperClassName=\"mx_MessageComposer_Menu\"\n                    compact={true}\n                >\n                    <OverflowMenuContext.Provider value={props.toggleButtonMenu}>\n                        <IconizedContextMenuOptionList>{moreButtons}</IconizedContextMenuOptionList>\n                    </OverflowMenuContext.Provider>\n                </IconizedContextMenu>\n            )}\n        </UploadButtonContextProvider>\n    );\n};\n\nfunction emojiButton(props: IProps): ReactElement {\n    return (\n        <EmojiButton\n            key=\"emoji_button\"\n            addEmoji={props.addEmoji}\n            menuPosition={props.menuPosition}\n            className=\"mx_MessageComposer_button\"\n        />\n    );\n}\n\nfunction uploadButton(): ReactElement {\n    return <UploadButton key=\"controls_upload\" />;\n}\n\ntype UploadButtonFn = () => void;\nexport const UploadButtonContext = createContext<UploadButtonFn | null>(null);\n\ninterface IUploadButtonProps {\n    roomId: string;\n    relation?: IEventRelation;\n    children: ReactNode;\n}\n\n// We put the file input outside the UploadButton component so that it doesn't get killed when the context menu closes.\nconst UploadButtonContextProvider: React.FC<IUploadButtonProps> = ({ roomId, relation, children }) => {\n    const cli = useContext(MatrixClientContext);\n    const roomContext = useScopedRoomContext(\"timelineRenderingType\", \"replyToEvent\");\n    const uploadInput = useRef<HTMLInputElement>(null);\n\n    const onUploadClick = (): void => {\n        if (cli?.isGuest()) {\n            dis.dispatch({ action: \"require_registration\" });\n            return;\n        }\n        uploadInput.current?.click();\n    };\n\n    useDispatcher(dis, (payload) => {\n        if (roomContext.timelineRenderingType === payload.context && payload.action === \"upload_file\") {\n            onUploadClick();\n        }\n    });\n\n    const onUploadFileInputChange = (ev: React.ChangeEvent<HTMLInputElement>): void => {\n        if (ev.target.files?.length === 0) return;\n\n        // Take a copy, so we can safely reset the value of the form control\n        ContentMessages.sharedInstance().sendContentListToRoom(\n            Array.from(ev.target.files!),\n            roomId,\n            relation,\n            roomContext.replyToEvent,\n            cli,\n            roomContext.timelineRenderingType,\n        );\n\n        // This is the onChange handler for a file form control, but we're\n        // not keeping any state, so reset the value of the form control\n        // to empty.\n        // NB. we need to set 'value': the 'files' property is immutable.\n        ev.target.value = \"\";\n    };\n\n    const uploadInputStyle = { display: \"none\" };\n    return (\n        <UploadButtonContext.Provider value={onUploadClick}>\n            {children}\n\n            <input\n                ref={uploadInput}\n                type=\"file\"\n                style={uploadInputStyle}\n                multiple\n                onClick={chromeFileInputFix}\n                onChange={onUploadFileInputChange}\n            />\n        </UploadButtonContext.Provider>\n    );\n};\n\n// Must be rendered within an UploadButtonContextProvider\nconst UploadButton: React.FC = () => {\n    const overflowMenuCloser = useContext(OverflowMenuContext);\n    const uploadButtonFn = useContext(UploadButtonContext);\n\n    const onClick = (): void => {\n        uploadButtonFn?.();\n        overflowMenuCloser?.(); // close overflow menu\n    };\n\n    return (\n        <CollapsibleButton className=\"mx_MessageComposer_button\" onClick={onClick} title={_t(\"common|attachment\")}>\n            <AttachmentIcon />\n        </CollapsibleButton>\n    );\n};\n\nfunction showStickersButton(props: IProps): ReactElement | null {\n    return props.showStickersButton ? (\n        <CollapsibleButton\n            id=\"stickersButton\"\n            key=\"controls_stickers\"\n            className=\"mx_MessageComposer_button\"\n            onClick={() => props.setStickerPickerOpen(!props.isStickerPickerOpen)}\n            title={props.isStickerPickerOpen ? _t(\"composer|close_sticker_picker\") : _t(\"common|sticker\")}\n        >\n            <StickerIcon />\n        </CollapsibleButton>\n    ) : null;\n}\n\nfunction voiceRecordingButton(props: IProps, narrow: boolean): ReactElement | null {\n    // XXX: recording UI does not work well in narrow mode, so hide for now\n    return narrow ? null : (\n        <CollapsibleButton\n            key=\"voice_message_send\"\n            className=\"mx_MessageComposer_button\"\n            onClick={props.onRecordStartEndClick}\n            title={_t(\"composer|voice_message_button\")}\n        >\n            <MicOnIcon />\n        </CollapsibleButton>\n    );\n}\n\nfunction pollButton(room: Room, relation?: IEventRelation): ReactElement {\n    return <PollButton key=\"polls\" room={room} relation={relation} />;\n}\n\ninterface IPollButtonProps {\n    room: Room;\n    relation?: IEventRelation;\n}\n\nclass PollButton extends React.PureComponent<IPollButtonProps> {\n    public static contextType = OverflowMenuContext;\n    declare public context: React.ContextType<typeof OverflowMenuContext>;\n\n    private onCreateClick = (): void => {\n        this.context?.(); // close overflow menu\n        const canSend = this.props.room.currentState.maySendEvent(\n            M_POLL_START.name,\n            MatrixClientPeg.safeGet().getSafeUserId(),\n        );\n        if (!canSend) {\n            Modal.createDialog(ErrorDialog, {\n                title: _t(\"composer|poll_button_no_perms_title\"),\n                description: _t(\"composer|poll_button_no_perms_description\"),\n            });\n        } else {\n            const threadId =\n                this.props.relation?.rel_type === THREAD_RELATION_TYPE.name ? this.props.relation.event_id : undefined;\n\n            Modal.createDialog(\n                PollCreateDialog,\n                {\n                    room: this.props.room,\n                    threadId,\n                },\n                \"mx_CompoundDialog\",\n                false, // isPriorityModal\n                true, // isStaticModal\n            );\n        }\n    };\n\n    public render(): React.ReactNode {\n        // do not allow sending polls within threads at this time\n        if (this.props.relation?.rel_type === THREAD_RELATION_TYPE.name) return null;\n\n        return (\n            <CollapsibleButton\n                className=\"mx_MessageComposer_button\"\n                onClick={this.onCreateClick}\n                title={_t(\"composer|poll_button\")}\n            >\n                <PollsIcon />\n            </CollapsibleButton>\n        );\n    }\n}\n\nfunction showLocationButton(props: IProps, room: Room, matrixClient: MatrixClient): ReactElement | null {\n    const sender = room.getMember(matrixClient.getSafeUserId());\n\n    return props.showLocationButton && sender ? (\n        <LocationButton\n            key=\"location\"\n            roomId={room.roomId}\n            relation={props.relation}\n            sender={sender}\n            menuPosition={props.menuPosition}\n        />\n    ) : null;\n}\n\ninterface WysiwygToggleButtonProps {\n    isRichTextEnabled: boolean;\n    onClick: (ev: ButtonEvent) => void;\n}\n\nfunction ComposerModeButton({ isRichTextEnabled, onClick }: WysiwygToggleButtonProps): JSX.Element {\n    const title = isRichTextEnabled ? _t(\"composer|mode_plain\") : _t(\"composer|mode_rich_text\");\n\n    return (\n        <CollapsibleButton className=\"mx_MessageComposer_button\" onClick={onClick} title={title}>\n            <TextFormattingIcon />\n        </CollapsibleButton>\n    );\n}\n\nexport default MessageComposerButtons;\n","import { forwardRef } from \"react\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction MicOnIcon(props, ref) {\n  return /*#__PURE__*/_jsxs(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"currentColor\",\n    viewBox: \"0 0 24 24\",\n    ref: ref,\n    ...props,\n    children: [/*#__PURE__*/_jsx(\"path\", {\n      d: \"M6 12a1 1 0 1 0-2 0 8 8 0 0 0 7 7.938V21a1 1 0 1 0 2 0v-1.062A8 8 0 0 0 20 12a1 1 0 1 0-2 0 6 6 0 0 1-12 0\"\n    }), /*#__PURE__*/_jsx(\"path\", {\n      fillRule: \"evenodd\",\n      d: \"M14 12V6a2 2 0 1 0-4 0v6a2 2 0 1 0 4 0M12 2a4 4 0 0 0-4 4v6a4 4 0 0 0 8 0V6a4 4 0 0 0-4-4\",\n      clipRule: \"evenodd\"\n    })]\n  });\n}\n;\nMicOnIcon.displayName = \"MicOnIcon\";\nexport default forwardRef(MicOnIcon);","import { forwardRef } from \"react\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction ReactionIcon(props, ref) {\n  return /*#__PURE__*/_jsxs(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"currentColor\",\n    viewBox: \"0 0 24 24\",\n    ref: ref,\n    ...props,\n    children: [/*#__PURE__*/_jsx(\"path\", {\n      d: \"M15.536 15.536a1 1 0 0 0-1.415-1.415 3 3 0 0 1-2.12.879 3 3 0 0 1-2.122-.879 1 1 0 1 0-1.414 1.415A5 5 0 0 0 12 17c1.38 0 2.632-.56 3.536-1.464M10 10.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0m5.5 1.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\"\n    }), /*#__PURE__*/_jsx(\"path\", {\n      d: \"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10m-2 0a8 8 0 1 0-16 0 8 8 0 0 0 16 0\"\n    })]\n  });\n}\n;\nReactionIcon.displayName = \"ReactionIcon\";\nexport default forwardRef(ReactionIcon);","import { forwardRef } from \"react\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction StickerIcon(props, ref) {\n  return /*#__PURE__*/_jsx(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"currentColor\",\n    viewBox: \"0 0 24 24\",\n    ref: ref,\n    ...props,\n    children: /*#__PURE__*/_jsx(\"path\", {\n      fillRule: \"evenodd\",\n      d: \"M17 2a5 5 0 0 1 5 4.999v5.335a5 5 0 0 1-1.58 3.647l-4.978 4.667A5 5 0 0 1 12.023 22H7l-.258-.007A5 5 0 0 1 2 17V7a5 5 0 0 1 5-5zM7 4a3 3 0 0 0-3 3v10a3 3 0 0 0 2.999 3H12v-4a4 4 0 0 1 4-4h4V6.999A3 3 0 0 0 17 4zm9 10a2 2 0 0 0-2 2v3.251l.074-.062 4.978-4.666q.252-.238.441-.523z\",\n      clipRule: \"evenodd\"\n    })\n  });\n}\n;\nStickerIcon.displayName = \"StickerIcon\";\nexport default forwardRef(StickerIcon);","import { forwardRef } from \"react\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction TextFormattingIcon(props, ref) {\n  return /*#__PURE__*/_jsx(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"currentColor\",\n    viewBox: \"0 0 24 24\",\n    ref: ref,\n    ...props,\n    children: /*#__PURE__*/_jsx(\"path\", {\n      d: \"M6 19a.97.97 0 0 1-.713-.288A.97.97 0 0 1 5 18q0-.424.287-.712A.97.97 0 0 1 6 17h12q.424 0 .712.288.288.287.288.712 0 .424-.288.712A.97.97 0 0 1 18 19zm1.35-5.2 3.425-9.2a.9.9 0 0 1 .338-.437A.93.93 0 0 1 11.65 4h.7q.3 0 .537.162.238.163.338.438l3.425 9.225q.15.425-.1.8a.8.8 0 0 1-.7.375.9.9 0 0 1-.512-.162A.9.9 0 0 1 15 14.4l-.75-2.2H9.8L9 14.425a.84.84 0 0 1-.325.425q-.225.15-.5.15a.84.84 0 0 1-.738-.387.82.82 0 0 1-.087-.813m3-3.2h3.3l-1.6-4.55h-.1z\"\n    })\n  });\n}\n;\nTextFormattingIcon.displayName = \"TextFormattingIcon\";\nexport default forwardRef(TextFormattingIcon);"],"names":["LocationPinIcon","props","ref","xmlns","width","height","fill","viewBox","children","d","displayName","forwardRef","DURATION_MS","fifteenMins","oneHour","eightHours","DEFAULT_DURATION_MS","getLabel","durationMs","_t","duration","formatDuration","LiveDurationDropdown","timeout","onChange","options","Object","values","map","key","toString","label","includes","push","React","Dropdown","id","value","onOptionChange","className","LocationShareType","handleShareError","error","openMenu","shareType","modalParams","errorMessage","errcode","Live","title","description","button","hasCancelButton","onFinished","getPermissionsErrorParams","getDefaultErrorParams","brand","SdkConfig","get","cancelButton","tryAgain","logger","Modal","createDialog","QuestionDialog","isSharingOwnLocation","Own","LocationPicker","constructor","super","_defineProperty","_document$getElementB","this","marker","maplibregl","element","document","getElementById","getMarkerId","undefined","anchor","offset","setLngLat","addTo","clientWellKnown","_tileServerFromWellKn","style","tileServerFromWellKnown","_this$map","setStyle","position","_this$marker","addMarkerToMap","setState","genericPositionFromGeolocation","coords","longitude","latitude","event","_this$marker2","lngLat","timestamp","Date","now","lat","lng","e","_this$map2","ErrorDialog","positionFailureMessage","code","geolocate","removeControl","state","onChoose","uri","getGeoUri","componentDidMount","context","on","ClientEvent","ClientWellKnown","updateStyleUrl","container","findMapStyleUrl","center","zoom","positionOptions","enableHighAccuracy","trackUserLocation","addControl","LocationShareError","MapStyleUrlNotReachable","_this$geolocate","trigger","onGeolocateError","onGeolocate","Pin","navigationControl","showCompass","showZoom","onClick","message","errorType","MapStyleUrlNotConfigured","WebGLNotEnabled","Default","componentWillUnmount","_this$geolocate2","_this$geolocate3","_this$map3","off","render","MapError","onSubmit","onOk","onTimeoutChange","AccessibleButton","type","kind","disabled","Marker","roomMember","sender","useMemberColor","MatrixClientContext","ShareDialogButtons","onBack","onCancel","displayBack","BackIcon","CloseIcon","UserAvatar","_OwnProfileStore$inst","_OwnProfileStore$inst2","userId","useContext","getSafeUserId","OwnProfileStore","instance","avatarSize","avatarUrl","getHttpAvatarUrl","parseInt","BaseAvatar","idName","name","url","size","ShareTypeOption","_ref","rest","_objectWithoutProperties","_excluded","_extends","LocationIcon","StyledLiveBeaconIcon","ShareType","setShareType","enabledShareTypes","labels","Heading","EnableLiveShare","isEnabled","setEnabled","useState","onEnabledChanged","useCallback","target","checked","onSubmitForm","evt","preventDefault","stopPropagation","Form","SettingsToggleInput","Button","LocationShareMenu","menuPosition","roomId","relation","matrixClient","getEnabledShareTypes","isLiveShareEnabled","useFeatureEnabled","multipleShareTypesEnabled","length","onLocationSubmit","shareLiveLocation","client","async","OwnBeaconStore","createLiveBeacon","ContentHelpers","LocationAssetType","Self","shareLocation","threadId","rel_type","THREAD_RELATION_TYPE","event_id","assetType","content","doMaybeLocalRoomAction","actualRoomId","sendMessage","shouldAdvertiseLiveLabsFlag","ContextMenu","managed","onLiveShareEnableSubmit","SettingsStore","setValue","SettingLevel","DEVICE","LocationButton","overflowMenuCloser","OverflowMenuContext","menuDisplayed","closeMenu","useContextMenu","_onFinished","ev","contextMenu","current","aboveLeftOf","getBoundingClientRect","classNames","mx_MessageComposer_button_highlight","CollapsibleButton","inputRef","OptionalTooltip","tooltip","isVisible","setIsVisible","onMouseEnter","show","onMouseLeave","hide","memberColorClass","getUserNameColorClass","mx_Marker_defaultColor","MemberAvatar","member","viewUserOnClick","hideTitle","IconizedContextMenuOption","icon","EmojiButton","addEmoji","focusLock","EmojiPicker","computedClassName","mx_EmojiButton_highlight","ReactionIcon","createContext","emojiButton","uploadButton","UploadButton","UploadButtonContext","UploadButtonContextProvider","cli","roomContext","useScopedRoomContext","uploadInput","useRef","onUploadClick","_uploadInput$current","isGuest","dis","dispatch","action","click","useDispatcher","payload","timelineRenderingType","Provider","display","multiple","chromeFileInputFix","_ev$target$files","files","ContentMessages","sharedInstance","sendContentListToRoom","Array","from","replyToEvent","uploadButtonFn","AttachmentIcon","showStickersButton","setStickerPickerOpen","isStickerPickerOpen","StickerIcon","voiceRecordingButton","narrow","onRecordStartEndClick","MicOnIcon","pollButton","room","PollButton","args","_this$context","call","currentState","maySendEvent","M_POLL_START","MatrixClientPeg","safeGet","_this$props$relation","PollCreateDialog","_this$props$relation2","onCreateClick","PollsIcon","showLocationButton","getMember","ComposerModeButton","isRichTextEnabled","TextFormattingIcon","isWysiwygLabEnabled","useSettingValue","haveRecording","mainButtons","moreButtons","onComposerModeClick","showPollsButton","filterBoolean","moreOptionsClasses","mx_MessageComposer_button","mx_MessageComposer_buttonMenu","mx_MessageComposer_closeButtonMenu","isMenuOpen","toggleButtonMenu","OverflowHorizontalIcon","IconizedContextMenu","wrapperClassName","compact","IconizedContextMenuOptionList","fillRule","clipRule"],"sourceRoot":""}