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

Commit

Permalink
fix(one): 修复事件对象没有 nativeEvent 的问题 (#1199)
Browse files Browse the repository at this point in the history
  • Loading branch information
yesmeck committed Jul 29, 2020
1 parent bdf4a67 commit a7308c3
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 10 deletions.
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

1 comment on commit a7308c3

@vercel
Copy link

@vercel vercel bot commented on a7308c3 Jul 29, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.