Skip to content

Commit

Permalink
Add message right click context menu v2 (matrix-org#5672)
Browse files Browse the repository at this point in the history
* migrate the message context menu to IconizedContextMenu

Signed-off-by: Michael Weimann <[email protected]>

* migrate the message context menu to IconizedContextMenu

Signed-off-by: Michael Weimann <[email protected]>

* Added right-click menu

Signed-off-by: Šimon Brandner <[email protected]>

* add message context menu group keys

Signed-off-by: Michael Weimann <[email protected]>

* add message context menu icons

Signed-off-by: Michael Weimann <[email protected]>

* add _MessageContextMenu.scss license header

Signed-off-by: Michael Weimann <[email protected]>

* use null vars for context menu lists

* Add allowOverridingNativeContextMenus()

Signed-off-by: Šimon Brandner <[email protected]>

* Use allowOverridingNativeContextMenus()

Signed-off-by: Šimon Brandner <[email protected]>

* Fix types

Signed-off-by: Šimon Brandner <[email protected]>

* Fix types

Signed-off-by: Šimon Brandner <[email protected]>

* Remove mistaken line

Signed-off-by: Šimon Brandner <[email protected]>

* Fix styling

Signed-off-by: Šimon Brandner <[email protected]>

* InputHTMLAttributes -> AllHTMLAttributes

Signed-off-by: Šimon Brandner <[email protected]>

* Convert to TS

Signed-off-by: Šimon Brandner <[email protected]>

* Add some types

Signed-off-by: Šimon Brandner <[email protected]>

* Make onClick optional

Signed-off-by: Šimon Brandner <[email protected]>

* Add rightClick prop

Signed-off-by: Šimon Brandner <[email protected]>

* Add copy button

Signed-off-by: Šimon Brandner <[email protected]>

* What about upgrading deps after the eslint migration, Simon?

Signed-off-by: Šimon Brandner <[email protected]>

* Add edit button

Signed-off-by: Šimon Brandner <[email protected]>

* fix

Signed-off-by: Šimon Brandner <[email protected]>

* Add reply button

Signed-off-by: Šimon Brandner <[email protected]>

* Add react button

Signed-off-by: Šimon Brandner <[email protected]>

* Cleanup render()

Signed-off-by: Šimon Brandner <[email protected]>

* Fix comments

Signed-off-by: Šimon Brandner <[email protected]>

* Add save button

Signed-off-by: Šimon Brandner <[email protected]>

* Don't show context menu if editing

Signed-off-by: Šimon Brandner <[email protected]>

* Add special handling for click a timestamp

Signed-off-by: Šimon Brandner <[email protected]>

* Fix double empty line

Signed-off-by: Šimon Brandner <[email protected]>

* Don't show context menu for images

Signed-off-by: Šimon Brandner <[email protected]>

* Cleanup

Signed-off-by: Šimon Brandner <[email protected]>

* Fix order

Signed-off-by: Šimon Brandner <[email protected]>

* Keep action bar shown when right-clicking

Signed-off-by: Šimon Brandner <[email protected]>

* Highlight event tile when right-clicking

Signed-off-by: Šimon Brandner <[email protected]>

* Delint

Signed-off-by: Šimon Brandner <[email protected]>

* Pointless change so that I can re-run the CI

Signed-off-by: Šimon Brandner <[email protected]>

* Remove dowload button

Because we don't use this menu when clicking on images

Signed-off-by: Šimon Brandner <[email protected]>

* Be more clear for non-bools

Signed-off-by: Šimon Brandner <[email protected]>

* Use triggerOnMouse down prop

Signed-off-by: Šimon Brandner <[email protected]>

* Remove a comment

Signed-off-by: Šimon Brandner <[email protected]>

* Remove unused var

Signed-off-by: Šimon Brandner <[email protected]>

* Remove unnecessary import

Signed-off-by: Šimon Brandner <[email protected]>

* Add some missing types

Signed-off-by: Šimon Brandner <[email protected]>

* Add missing type

Signed-off-by: Šimon Brandner <[email protected]>

* Remove unused import

Signed-off-by: Šimon Brandner <[email protected]>

* Add a missing type

Signed-off-by: Šimon Brandner <[email protected]>

* Fix types

Signed-off-by: Šimon Brandner <[email protected]>

* Fix types/naming

Signed-off-by: Šimon Brandner <[email protected]>

* Add missing current

Signed-off-by: Šimon Brandner <[email protected]>

* Remove unused var

Signed-off-by: Šimon Brandner <[email protected]>

* Fix editing and replying

Signed-off-by: Šimon Brandner <[email protected]>

* i18n

Signed-off-by: Šimon Brandner <[email protected]>

* Fix import

Signed-off-by: Šimon Brandner <[email protected]>

* Support right-click context menu for threads

Signed-off-by: Šimon Brandner <[email protected]>

* Make button order match `MessageActionBar`

Signed-off-by: Šimon Brandner <[email protected]>

* Fix missing permalink button

Signed-off-by: Šimon Brandner <[email protected]>

* Remove useless part of if statement

Signed-off-by: Šimon Brandner <[email protected]>

* Some small refactoring for consistency

Signed-off-by: Šimon Brandner <[email protected]>

* Some more refactoring

Signed-off-by: Šimon Brandner <[email protected]>

* Fix `editEvent()` call

Signed-off-by: Šimon Brandner <[email protected]>

* Make editing polls work

Signed-off-by: Šimon Brandner <[email protected]>

* Fix collapse reply chain button

Signed-off-by: Šimon Brandner <[email protected]>

* Fix timelineRenderingType

Signed-off-by: Šimon Brandner <[email protected]>

* Fix reply button

Signed-off-by: Šimon Brandner <[email protected]>

* Hide right-click context menu behind a labs flag

Signed-off-by: Šimon Brandner <[email protected]>

* Add missing return type

Signed-off-by: Šimon Brandner <[email protected]>

* Make `contextMene` optional

Signed-off-by: Šimon Brandner <[email protected]>

* Move `renderContextMenu()`

Signed-off-by: Šimon Brandner <[email protected]>

* Simplify `renderContextMenu()`

Signed-off-by: Šimon Brandner <[email protected]>

* Improve `aboveLeftOf` typing

Signed-off-by: Šimon Brandner <[email protected]>

* Use `InputHTMLAttributes`

Signed-off-by: Šimon Brandner <[email protected]>

* Disable message right-click context menu in browser (for now)

Signed-off-by: Šimon Brandner <[email protected]>

* Give permalink button more props

Signed-off-by: Šimon Brandner <[email protected]>

Co-authored-by: Michael Weimann <[email protected]>
  • Loading branch information
2 people authored and Johennes committed Apr 19, 2022
1 parent ff84c1d commit 8d47df4
Show file tree
Hide file tree
Showing 9 changed files with 410 additions and 125 deletions.
16 changes: 16 additions & 0 deletions res/css/views/context_menus/_MessageContextMenu.scss
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,22 @@ limitations under the License.
mask-image: url('$(res)/img/element-icons/room/pin.svg');
}

.mx_MessageContextMenu_iconCopy::before {
mask-image: url($copy-button-url);
}

.mx_MessageContextMenu_iconEdit::before {
mask-image: url('$(res)/img/element-icons/room/message-bar/edit.svg');
}

.mx_MessageContextMenu_iconReply::before {
mask-image: url('$(res)/img/element-icons/room/message-bar/reply.svg');
}

.mx_MessageContextMenu_iconReact::before {
mask-image: url('$(res)/img/element-icons/room/message-bar/emoji.svg');
}

.mx_MessageContextMenu_iconViewInRoom::before {
mask-image: url('$(res)/img/element-icons/view-in-room.svg');
}
Expand Down
7 changes: 7 additions & 0 deletions src/BasePlatform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,13 @@ export default abstract class BasePlatform {
return false;
}

/**
* Returns true if platform allows overriding native context menus
*/
public allowOverridingNativeContextMenus(): boolean {
return false;
}

/**
* Returns true if the platform supports displaying
* notifications, otherwise false.
Expand Down
2 changes: 1 addition & 1 deletion src/components/structures/ContextMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ export type AboveLeftOf = IPosition & {
// Placement method for <ContextMenu /> to position context menu right-aligned and flowing to the left of elementRect,
// and either above or below: wherever there is more space (maybe this should be aboveOrBelowLeftOf?)
export const aboveLeftOf = (
elementRect: DOMRect,
elementRect: Pick<DOMRect, "right" | "top" | "bottom">,
chevronFace = ChevronFace.None,
vPadding = 0,
): AboveLeftOf => {
Expand Down
Loading

0 comments on commit 8d47df4

Please sign in to comment.