mirror of
https://github.com/discourse/discourse.git
synced 2025-02-23 15:45:42 +08:00
DEV: supports pointerover and pointerout (#31302)
This commit adds support these events in widgets. Usage in a widget: ```javascript pointerOver(event) {} pointerOut(event) {} ```
This commit is contained in:
parent
820c8cb119
commit
23e07fb076
@ -19,6 +19,8 @@ const MOUSE_OUT_ATTRIBUTE_NAME = "_discourse_mouse_out_widget";
|
|||||||
const TOUCH_START_ATTRIBUTE_NAME = "_discourse_touch_start_widget";
|
const TOUCH_START_ATTRIBUTE_NAME = "_discourse_touch_start_widget";
|
||||||
const TOUCH_END_ATTRIBUTE_NAME = "_discourse_touch_end_widget";
|
const TOUCH_END_ATTRIBUTE_NAME = "_discourse_touch_end_widget";
|
||||||
const TOUCH_MOVE_ATTRIBUTE_NAME = "_discourse_touch_move_widget";
|
const TOUCH_MOVE_ATTRIBUTE_NAME = "_discourse_touch_move_widget";
|
||||||
|
const POINTER_OVER_ATTRIBUTE_NAME = "_discourse_pointer_over_widget";
|
||||||
|
const POINTER_OUT_ATTRIBUTE_NAME = "_discourse_pointer_out_widget";
|
||||||
|
|
||||||
class WidgetBaseHook {
|
class WidgetBaseHook {
|
||||||
constructor(widget) {
|
constructor(widget) {
|
||||||
@ -64,6 +66,8 @@ export const WidgetMouseUpHook = buildHook(MOUSE_UP_ATTRIBUTE_NAME);
|
|||||||
export const WidgetMouseDownHook = buildHook(MOUSE_DOWN_ATTRIBUTE_NAME);
|
export const WidgetMouseDownHook = buildHook(MOUSE_DOWN_ATTRIBUTE_NAME);
|
||||||
export const WidgetMouseMoveHook = buildHook(MOUSE_MOVE_ATTRIBUTE_NAME);
|
export const WidgetMouseMoveHook = buildHook(MOUSE_MOVE_ATTRIBUTE_NAME);
|
||||||
export const WidgetMouseOverHook = buildHook(MOUSE_OVER_ATTRIBUTE_NAME);
|
export const WidgetMouseOverHook = buildHook(MOUSE_OVER_ATTRIBUTE_NAME);
|
||||||
|
export const WidgetPointerOverHook = buildHook(POINTER_OVER_ATTRIBUTE_NAME);
|
||||||
|
export const WidgetPointerOutHook = buildHook(POINTER_OUT_ATTRIBUTE_NAME);
|
||||||
export const WidgetMouseOutHook = buildHook(MOUSE_OUT_ATTRIBUTE_NAME);
|
export const WidgetMouseOutHook = buildHook(MOUSE_OUT_ATTRIBUTE_NAME);
|
||||||
export const WidgetTouchEndHook = buildHook(TOUCH_END_ATTRIBUTE_NAME);
|
export const WidgetTouchEndHook = buildHook(TOUCH_END_ATTRIBUTE_NAME);
|
||||||
|
|
||||||
@ -216,6 +220,20 @@ WidgetClickHook.setupDocumentCallback = function () {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$(document).on(
|
||||||
|
"pointerover.discourse-widget",
|
||||||
|
bind(this, (e) => {
|
||||||
|
nodeCallback(
|
||||||
|
e.target,
|
||||||
|
POINTER_OVER_ATTRIBUTE_NAME,
|
||||||
|
(w) => w.pointerOver(e),
|
||||||
|
{
|
||||||
|
rerender: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
$(document).on(
|
$(document).on(
|
||||||
"mouseout.discourse-widget",
|
"mouseout.discourse-widget",
|
||||||
bind(this, (e) => {
|
bind(this, (e) => {
|
||||||
@ -225,6 +243,20 @@ WidgetClickHook.setupDocumentCallback = function () {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$(document).on(
|
||||||
|
"pointerout.discourse-widget",
|
||||||
|
bind(this, (e) => {
|
||||||
|
nodeCallback(
|
||||||
|
e.target,
|
||||||
|
POINTER_OUT_ATTRIBUTE_NAME,
|
||||||
|
(w) => w.pointerOut(e),
|
||||||
|
{
|
||||||
|
rerender: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
$(document).on(
|
$(document).on(
|
||||||
"dblclick.discourse-widget",
|
"dblclick.discourse-widget",
|
||||||
bind(this, (e) => {
|
bind(this, (e) => {
|
||||||
|
@ -22,6 +22,8 @@ import {
|
|||||||
WidgetMouseOutHook,
|
WidgetMouseOutHook,
|
||||||
WidgetMouseOverHook,
|
WidgetMouseOverHook,
|
||||||
WidgetMouseUpHook,
|
WidgetMouseUpHook,
|
||||||
|
WidgetPointerOutHook,
|
||||||
|
WidgetPointerOverHook,
|
||||||
WidgetTouchEndHook,
|
WidgetTouchEndHook,
|
||||||
WidgetTouchMoveHook,
|
WidgetTouchMoveHook,
|
||||||
WidgetTouchStartHook,
|
WidgetTouchStartHook,
|
||||||
@ -484,6 +486,14 @@ export default class Widget {
|
|||||||
properties["widget-mouse-over"] = new WidgetMouseOverHook(this);
|
properties["widget-mouse-over"] = new WidgetMouseOverHook(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.pointerOver) {
|
||||||
|
properties["widget-pointer-over"] = new WidgetPointerOverHook(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.pointerOut) {
|
||||||
|
properties["widget-pointer-out"] = new WidgetPointerOutHook(this);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.mouseOut) {
|
if (this.mouseOut) {
|
||||||
properties["widget-mouse-out"] = new WidgetMouseOutHook(this);
|
properties["widget-mouse-out"] = new WidgetMouseOutHook(this);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user