Skip to content
This repository has been archived by the owner on Mar 7, 2024. It is now read-only.

fix(one): 修复事件对象没有 nativeEvent 的问题 #1199

Merged
merged 1 commit into from
Jul 29, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
fix(one): 修复事件对象没有 nativeEvent 的问题
  • Loading branch information
yesmeck committed Jul 29, 2020
commit b25c1611bb8d7ac6264f5a596d312d05999dfe12
4 changes: 2 additions & 2 deletions packages/remax-one/src/__tests__/components/Input.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ describe('Input', () => {

expect(instance.props.value).toEqual('1');

const originalEvent = {
const nativeEvent = {
target: {},
currentTarget: {},
detail: {
Expand All @@ -48,7 +48,7 @@ describe('Input', () => {
};

act(() => {
instance.props.onInput(originalEvent);
instance.props.onInput(nativeEvent);
});

expect(instance.props.value).toEqual('2');
Expand Down
4 changes: 2 additions & 2 deletions packages/remax-one/src/__tests__/components/Textarea.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ describe('Textarea', () => {

expect(instance.props.value).toEqual('1');

const originalEvent = {
const nativeEvent = {
target: {},
currentTarget: {},
detail: {
Expand All @@ -69,7 +69,7 @@ describe('Textarea', () => {
};

act(() => {
instance.props.onInput(originalEvent);
instance.props.onInput(nativeEvent);
});

expect(instance.props.value).toEqual('2');
Expand Down
112 changes: 106 additions & 6 deletions packages/remax-one/src/__tests__/createEvent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
createTapEvent,
} from '../createHostComponent';
import { ImageLoadEvent, FormEvent, TapEvent, TouchEvent } from '../types';
const originalEvent = {
const nativeEvent = {
target: {
id: 1,
offsetLeft: 0,
Expand Down Expand Up @@ -38,7 +38,7 @@ describe('create event', () => {
it('createInputEvent', () => {
const callback = createCallback((e: InputEvent) => e, createInputEvent);

const event = callback!(originalEvent);
const event = callback!(nativeEvent);
expect(event).toMatchInlineSnapshot(`
Object {
"currentTarget": Object {
Expand All @@ -47,6 +47,26 @@ describe('create event', () => {
"offsetLeft": 0,
"offsetTop": 0,
},
"nativeEvent": Object {
"changedTouches": Array [],
"currentTarget": Object {
"dataset": Object {},
"id": 1,
"offsetLeft": 0,
"offsetTop": 0,
},
"detail": Object {
"value": "value",
},
"target": Object {
"dataset": Object {},
"id": 1,
"offsetLeft": 0,
"offsetTop": 0,
},
"touches": Array [],
"type": "event",
},
"originalEvent": Object {
"changedTouches": Array [],
"currentTarget": Object {
Expand Down Expand Up @@ -82,7 +102,7 @@ describe('create event', () => {
it('createImageEvent', () => {
const callback = createCallback((e: ImageLoadEvent) => e, createImageEvent);

const event = callback!(originalEvent);
const event = callback!(nativeEvent);
expect(event).toMatchInlineSnapshot(`
Object {
"currentTarget": Object {
Expand All @@ -91,6 +111,26 @@ describe('create event', () => {
"offsetLeft": 0,
"offsetTop": 0,
},
"nativeEvent": Object {
"changedTouches": Array [],
"currentTarget": Object {
"dataset": Object {},
"id": 1,
"offsetLeft": 0,
"offsetTop": 0,
},
"detail": Object {
"value": "value",
},
"target": Object {
"dataset": Object {},
"id": 1,
"offsetLeft": 0,
"offsetTop": 0,
},
"touches": Array [],
"type": "event",
},
"originalEvent": Object {
"changedTouches": Array [],
"currentTarget": Object {
Expand Down Expand Up @@ -126,7 +166,7 @@ describe('create event', () => {
it('createFormEvent', () => {
const callback = createCallback((e: FormEvent) => e, createFormEvent);

const event = callback!(originalEvent);
const event = callback!(nativeEvent);
expect(event).toMatchInlineSnapshot(`
Object {
"currentTarget": Object {
Expand All @@ -135,6 +175,26 @@ describe('create event', () => {
"offsetLeft": 0,
"offsetTop": 0,
},
"nativeEvent": Object {
"changedTouches": Array [],
"currentTarget": Object {
"dataset": Object {},
"id": 1,
"offsetLeft": 0,
"offsetTop": 0,
},
"detail": Object {
"value": "value",
},
"target": Object {
"dataset": Object {},
"id": 1,
"offsetLeft": 0,
"offsetTop": 0,
},
"touches": Array [],
"type": "event",
},
"originalEvent": Object {
"changedTouches": Array [],
"currentTarget": Object {
Expand Down Expand Up @@ -170,7 +230,7 @@ describe('create event', () => {
it('createTapEvent', () => {
const callback = createCallback((e: TapEvent) => e, createTapEvent);

const event = callback!(originalEvent);
const event = callback!(nativeEvent);
expect(event).toMatchInlineSnapshot(`
Object {
"currentTarget": Object {
Expand All @@ -179,6 +239,26 @@ describe('create event', () => {
"offsetLeft": 0,
"offsetTop": 0,
},
"nativeEvent": Object {
"changedTouches": Array [],
"currentTarget": Object {
"dataset": Object {},
"id": 1,
"offsetLeft": 0,
"offsetTop": 0,
},
"detail": Object {
"value": "value",
},
"target": Object {
"dataset": Object {},
"id": 1,
"offsetLeft": 0,
"offsetTop": 0,
},
"touches": Array [],
"type": "event",
},
"originalEvent": Object {
"changedTouches": Array [],
"currentTarget": Object {
Expand Down Expand Up @@ -215,7 +295,7 @@ describe('create event', () => {
it('createTouchEvent', () => {
const callback = createCallback((e: TouchEvent) => e, createTouchEvent);

const event = callback!(originalEvent);
const event = callback!(nativeEvent);
expect(event).toMatchInlineSnapshot(`
Object {
"changedTouches": Array [],
Expand All @@ -225,6 +305,26 @@ describe('create event', () => {
"offsetLeft": 0,
"offsetTop": 0,
},
"nativeEvent": Object {
"changedTouches": Array [],
"currentTarget": Object {
"dataset": Object {},
"id": 1,
"offsetLeft": 0,
"offsetTop": 0,
},
"detail": Object {
"value": "value",
},
"target": Object {
"dataset": Object {},
"id": 1,
"offsetLeft": 0,
"offsetTop": 0,
},
"touches": Array [],
"type": "event",
},
"originalEvent": Object {
"changedTouches": Array [],
"currentTarget": Object {
Expand Down
5 changes: 5 additions & 0 deletions packages/remax-one/src/createHostComponent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export const createTapEvent = (originalEvent: any): TapEvent => ({
target: createTarget(originalEvent.target, originalEvent.detail),
currentTarget: createCurrentTarget(originalEvent.currentTarget),
originalEvent,
nativeEvent: originalEvent,
});

export const createTouchEvent = (originalEvent: any): TouchEvent => ({
Expand All @@ -46,13 +47,15 @@ export const createTouchEvent = (originalEvent: any): TouchEvent => ({
touches: originalEvent.touches,
changedTouches: originalEvent.touches,
originalEvent,
nativeEvent: originalEvent,
});

export const createImageEvent = (originalEvent: any): ImageLoadEvent | ImageErrorEvent => ({
type: originalEvent.type,
target: createTarget(originalEvent.target, originalEvent.detail),
currentTarget: createCurrentTarget(originalEvent.currentTarget),
originalEvent,
nativeEvent: originalEvent,
});

export function createCallback(fn: Function | undefined, eventCreator: Function) {
Expand All @@ -68,13 +71,15 @@ export const createInputEvent = (originalEvent: any): InputEvent => ({
target: createTarget(originalEvent.target, originalEvent.detail),
currentTarget: createCurrentTarget(originalEvent.currentTarget),
originalEvent,
nativeEvent: originalEvent,
});

export const createFormEvent = (originalEvent: any): FormEvent => ({
type: originalEvent.type,
target: createTarget(originalEvent.target, originalEvent.detail),
currentTarget: createCurrentTarget(originalEvent.currentTarget),
originalEvent,
nativeEvent: originalEvent,
});

function assignDefaultProps(inputProps: any, defaultProps: any) {
Expand Down
2 changes: 2 additions & 0 deletions packages/remax-one/src/types/event.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ export interface Event {
target: EventTarget;
currentTarget: EventCurrentTarget;
type: string;
// 已废弃
originalEvent: any;
nativeEvent: any;
}

export interface TouchEvent extends Event {
Expand Down