Skip to content

fix(web): input event trigger twice && detail.value miss#1179

Merged
Sherry-hue merged 1 commit intolynx-family:mainfrom
Sherry-hue:fix/input-trigger-twice
Jun 30, 2025
Merged

fix(web): input event trigger twice && detail.value miss#1179
Sherry-hue merged 1 commit intolynx-family:mainfrom
Sherry-hue:fix/input-trigger-twice

Conversation

@Sherry-hue
Copy link
Copy Markdown
Collaborator

@Sherry-hue Sherry-hue commented Jun 30, 2025

Summary

#1174

fix #1024

fix: in lynx-view all-on-ui mode, the input event of input and textarea is triggered twice, and the first e.detail is a string, which does not conform to the expected data format.

Checklist

  • Tests updated (or not required).
  • Documentation updated (or not required).

@Sherry-hue Sherry-hue self-assigned this Jun 30, 2025
@Sherry-hue Sherry-hue requested a review from PupilTong as a code owner June 30, 2025 08:22
@Sherry-hue Sherry-hue added bug Something isn't working platform:Web labels Jun 30, 2025
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Jun 30, 2025

🦋 Changeset detected

Latest commit: 6af6eb4

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 8 packages
Name Type
@lynx-js/web-constants Patch
@lynx-js/web-elements Patch
@lynx-js/web-core-server Patch
@lynx-js/web-core Patch
@lynx-js/web-mainthread-apis Patch
@lynx-js/web-worker-runtime Patch
@lynx-js/web-worker-rpc Patch
@lynx-js/web-elements-template Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Jun 30, 2025

CodSpeed Performance Report

Merging #1179 will not alter performance

Comparing Sherry-hue:fix/input-trigger-twice (6af6eb4) with main (a7e8b5b)

Summary

✅ 10 untouched benchmarks

@relativeci
Copy link
Copy Markdown

relativeci bot commented Jun 30, 2025

React Example

#2250 Bundle Size — 233.19KiB (0%).

6af6eb4(current) vs a7e8b5b main#2227(baseline)

Bundle metrics  no changes
                 Current
#2250
     Baseline
#2227
No change  Initial JS 0B 0B
No change  Initial CSS 0B 0B
No change  Cache Invalidation 0% 0%
No change  Chunks 0 0
No change  Assets 4 4
No change  Modules 152 152
No change  Duplicate Modules 60 60
No change  Duplicate Code 45.81% 45.81%
No change  Packages 2 2
No change  Duplicate Packages 0 0
Bundle size by type  no changes
                 Current
#2250
     Baseline
#2227
No change  IMG 145.76KiB 145.76KiB
No change  Other 87.43KiB 87.43KiB

Bundle analysis reportBranch Sherry-hue:fix/input-trigger-twi...Project dashboard


Generated by RelativeCIDocumentationReport issue

@relativeci
Copy link
Copy Markdown

relativeci bot commented Jun 30, 2025

Web Explorer

#2241 Bundle Size — 258.28KiB (+0.05%).

6af6eb4(current) vs a7e8b5b main#2217(baseline)

Bundle metrics  Change 4 changes Regression 1 regression
                 Current
#2241
     Baseline
#2217
Regression  Initial JS 140.25KiB(+0.05%) 140.17KiB
No change  Initial CSS 31.82KiB 31.82KiB
Change  Cache Invalidation 76.86% 0%
No change  Chunks 4 4
No change  Assets 4 4
Change  Modules 208(+0.48%) 207
No change  Duplicate Modules 15 15
Change  Duplicate Code 3.42%(+0.29%) 3.41%
No change  Packages 4 4
No change  Duplicate Packages 0 0
Bundle size by type  Change 1 change Regression 1 regression
                 Current
#2241
     Baseline
#2217
Regression  JS 226.46KiB (+0.06%) 226.33KiB
No change  CSS 31.82KiB 31.82KiB

Bundle analysis reportBranch Sherry-hue:fix/input-trigger-twi...Project dashboard


Generated by RelativeCIDocumentationReport issue

@Sherry-hue Sherry-hue force-pushed the fix/input-trigger-twice branch from fbe1c16 to 6af6eb4 Compare June 30, 2025 08:56
@codecov
Copy link
Copy Markdown

codecov bot commented Jun 30, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@Sherry-hue Sherry-hue added this pull request to the merge queue Jun 30, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jun 30, 2025
@Sherry-hue Sherry-hue added this pull request to the merge queue Jun 30, 2025
Merged via the queue into lynx-family:main with commit 7751375 Jun 30, 2025
44 checks passed
@Sherry-hue Sherry-hue deleted the fix/input-trigger-twice branch June 30, 2025 11:53
colinaaa pushed a commit that referenced this pull request Jun 30, 2025
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @lynx-js/qrcode-rsbuild-plugin@0.4.0

### Minor Changes

- Support "Type to search" when switching entries and schema.
([#1115](#1115))

## @lynx-js/react@0.110.1

### Patch Changes

- Fix a memory leak when using `<list/>`.
([#1144](#1144))

## @lynx-js/rspeedy@0.9.11

### Patch Changes

- Enable fine-grained control for `output.inlineScripts`
([#883](#883))

    ```ts
    type InlineChunkTestFunction = (params: {
      size: number;
      name: string;
    }) => boolean;

    type InlineChunkTest = RegExp | InlineChunkTestFunction;

    type InlineChunkConfig =
      | boolean
      | InlineChunkTest
      | { enable?: boolean | "auto"; test: InlineChunkTest };
    ```

    ```ts
    import { defineConfig } from "@lynx-js/rspeedy";

    export default defineConfig({
      output: {
        inlineScripts: ({ name, size }) => {
          return name.includes("foo") && size < 1000;
        },
      },
    });
    ```

- docs: remove chunks: 'all' in comments
([#1168](#1168))

## @lynx-js/react-rsbuild-plugin@0.10.5

### Patch Changes

- Avoid IIFE in `main-thread.js` to resolve memory leak when using
`<list />`.
([#1176](#1176))

- Enable fine-grained control for `output.inlineScripts`
([#883](#883))

    ```ts
    type InlineChunkTestFunction = (params: {
      size: number;
      name: string;
    }) => boolean;

    type InlineChunkTest = RegExp | InlineChunkTestFunction;

    type InlineChunkConfig =
      | boolean
      | InlineChunkTest
      | { enable?: boolean | "auto"; test: InlineChunkTest };
    ```

    ```ts
    import { defineConfig } from "@lynx-js/rspeedy";

    export default defineConfig({
      output: {
        inlineScripts: ({ name, size }) => {
          return name.includes("foo") && size < 1000;
        },
      },
    });
    ```

- Updated dependencies
\[[`51cb73d`](51cb73d),
[`69fb042`](69fb042),
[`a7e8b5b`](a7e8b5b)]:
    -   @lynx-js/runtime-wrapper-webpack-plugin@0.1.2
    -   @lynx-js/template-webpack-plugin@0.8.1
    -   @lynx-js/react-webpack-plugin@0.6.17
    -   @lynx-js/react-alias-rsbuild-plugin@0.10.5
    -   @lynx-js/use-sync-external-store@1.5.0
    -   @lynx-js/react-refresh-webpack-plugin@0.3.3
    -   @lynx-js/css-extract-webpack-plugin@0.6.0

## @lynx-js/web-constants@0.14.1

### Patch Changes

- feat: support BTS API `lynx.reportError` && `__SetSourceMapRelease`,
now you can use it and handle it in lynx-view error event.
([#1059](#1059))

- fix: in lynx-view all-on-ui mode, the input event of input and
textarea is triggered twice, and the first e.detail is a string, which
does not conform to the expected data format.
([#1179](#1179))

- fix: under the all-on-ui strategy, reload() will add two page
elements. ([#1147](#1147))

-   Updated dependencies \[]:
    -   @lynx-js/web-worker-rpc@0.14.1

## @lynx-js/web-core@0.14.1

### Patch Changes

- feat: support BTS API `lynx.reportError` && `__SetSourceMapRelease`,
now you can use it and handle it in lynx-view error event.
([#1059](#1059))

- fix: under the all-on-ui strategy, reload() will add two page
elements. ([#1147](#1147))

- Updated dependencies
\[[`a64333e`](a64333e),
[`7751375`](7751375),
[`b52a924`](b52a924)]:
    -   @lynx-js/web-worker-runtime@0.14.1
    -   @lynx-js/web-constants@0.14.1
    -   @lynx-js/web-mainthread-apis@0.14.1
    -   @lynx-js/web-worker-rpc@0.14.1

## @lynx-js/web-elements@0.7.7

### Patch Changes

- fix: the param `index` of list scrollToPosition function should be
`position`.
([#1135](#1135))

- fix: in lynx-view all-on-ui mode, the input event of input and
textarea is triggered twice, and the first e.detail is a string, which
does not conform to the expected data format.
([#1179](#1179))

-   Updated dependencies \[]:
    -   @lynx-js/web-elements-template@0.7.7

## @lynx-js/web-mainthread-apis@0.14.1

### Patch Changes

- fix: under the all-on-ui strategy, reload() will add two page
elements. ([#1147](#1147))

- Updated dependencies
\[[`a64333e`](a64333e),
[`7751375`](7751375),
[`b52a924`](b52a924)]:
    -   @lynx-js/web-constants@0.14.1

## @lynx-js/web-worker-runtime@0.14.1

### Patch Changes

- feat: support BTS API `lynx.reportError` && `__SetSourceMapRelease`,
now you can use it and handle it in lynx-view error event.
([#1059](#1059))

- Updated dependencies
\[[`a64333e`](a64333e),
[`7751375`](7751375),
[`b52a924`](b52a924)]:
    -   @lynx-js/web-constants@0.14.1
    -   @lynx-js/web-mainthread-apis@0.14.1
    -   @lynx-js/web-worker-rpc@0.14.1

## @lynx-js/react-webpack-plugin@0.6.17

### Patch Changes

- Enable fine-grained control for `output.inlineScripts`
([#883](#883))

    ```ts
    type InlineChunkTestFunction = (params: {
      size: number;
      name: string;
    }) => boolean;

    type InlineChunkTest = RegExp | InlineChunkTestFunction;

    type InlineChunkConfig =
      | boolean
      | InlineChunkTest
      | { enable?: boolean | "auto"; test: InlineChunkTest };
    ```

    ```ts
    import { defineConfig } from "@lynx-js/rspeedy";

    export default defineConfig({
      output: {
        inlineScripts: ({ name, size }) => {
          return name.includes("foo") && size < 1000;
        },
      },
    });
    ```

## @lynx-js/runtime-wrapper-webpack-plugin@0.1.2

### Patch Changes

- Wrap with IIFE when `output.iife: false` to avoid naming conflict.
([#1176](#1176))

## @lynx-js/template-webpack-plugin@0.8.1

### Patch Changes

- feat: `::placeholder` will be compiled to `part(input)::placeholder`,
which means you can use pseudo-element CSS to add placeholder styles to
input and textarea.
([#1158](#1158))

        // before
<input placeholder-color='red' placeholder-font-weight='bold'
placeholder-font-size='20px'>

        // after
        <input>

        input::placeholder {
          color: red;
          font-weight: bold;
          font-size: 20px;
        }

- Enable fine-grained control for `output.inlineScripts`
([#883](#883))

    ```ts
    type InlineChunkTestFunction = (params: {
      size: number;
      name: string;
    }) => boolean;

    type InlineChunkTest = RegExp | InlineChunkTestFunction;

    type InlineChunkConfig =
      | boolean
      | InlineChunkTest
      | { enable?: boolean | "auto"; test: InlineChunkTest };
    ```

    ```ts
    import { defineConfig } from "@lynx-js/rspeedy";

    export default defineConfig({
      output: {
        inlineScripts: ({ name, size }) => {
          return name.includes("foo") && size < 1000;
        },
      },
    });
    ```

## create-rspeedy@0.9.11



## @lynx-js/react-alias-rsbuild-plugin@0.10.5



## upgrade-rspeedy@0.9.11



## @lynx-js/web-core-server@0.14.1



## @lynx-js/web-elements-template@0.7.7



## @lynx-js/web-worker-rpc@0.14.1

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working platform:Web

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Bug]: Lynx Web Platform bindinput is triggered twice

2 participants