Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI: Use form attribite with a form in doc root to prevent outer form submit #4283

Merged
merged 17 commits into from
Mar 30, 2023

Conversation

arturi
Copy link
Contributor

@arturi arturi commented Jan 23, 2023

ToDo:

  • Unplash (SearchProvder), Meta editor, Url plugin
  • check provider view search/filter
  • anything else uses inputs in Uppy?

@arturi arturi requested review from aduh95 and mifi January 23, 2023 11:46
@arturi arturi changed the title Use form attribite with a form in doc root to prevent outer form submit UI: Use form attribite with a form in doc root to prevent outer form submit Jan 23, 2023
Copy link
Contributor

@mifi mifi left a comment

Choose a reason for hiding this comment

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

Shouldn't we do this form trick inside Filter.jsx too? Actually even better: could we merge InputView and Filter into one component? As far as I understand, they are basically the same thing, but they only look a bit different.

@arturi arturi requested a review from mifi March 13, 2023 10:16
@Murderlon
Copy link
Member

@nickrttn can you give this a quick review from the React side of things?

@nickrttn
Copy link
Contributor

nickrttn commented Mar 13, 2023

Just curious why you wouldn't always render the form? eg.

   <div className="uppy-SearchProvider">
      <form onSubmit={handleSearch} className="visually-hidden" tabIndex="-1" id={formId}/>
      <input
        className="uppy-u-reset uppy-c-textInput uppy-SearchProvider-input"
        type="search"
        aria-label={i18n('enterTextToSearch')}
        placeholder={i18n('enterTextToSearch')}
        value={searchText}
        onInput={onSearchTextChange}
        data-uppy-super-focusable
        form={formId}
      />

@arturi
Copy link
Contributor Author

arturi commented Mar 13, 2023

why you wouldn't always render the form

The whole point of this PR in the beginning was to avoid forms/inputs inside a form. If someone wraps Uppy Dashboard in a <form>, and we also have a <form> inside Uppy UI — it’s an issue, can't have nested forms in HTML.

@arturi
Copy link
Contributor Author

arturi commented Mar 29, 2023

@aduh95 Jest is going crazy for some reason, I suspect it’s something to do with the addition of hooks import { useEffect, useState, useCallback } from 'preact/hooks'. Do you have an idea?

Details:

    /home/runner/work/uppy/uppy/node_modules/preact/hooks/dist/hooks.module.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){import{options as n}from"preact";var t,u,r,o,i=0,c=[],f=[],e=n.__b,a=n.__r,v=n.diffed,l=n.__c,m=n.unmount;function p(t,r)

@aduh95 aduh95 force-pushed the use-form-attr branch 2 times, most recently from 307e0a0 to 38ae39a Compare March 30, 2023 12:47
@arturi arturi merged commit f9e9702 into main Mar 30, 2023
@arturi arturi deleted the use-form-attr branch March 30, 2023 13:04
@github-actions github-actions bot mentioned this pull request Apr 4, 2023
github-actions bot added a commit that referenced this pull request Apr 4, 2023
| Package                | Version | Package                | Version |
| ---------------------- | ------- | ---------------------- | ------- |
| @uppy/aws-s3           |   3.0.6 | @uppy/status-bar       |   3.1.0 |
| @uppy/aws-s3-multipart |   3.1.3 | @uppy/transloadit      |   3.1.2 |
| @uppy/companion        |   4.4.0 | @uppy/tus              |   3.0.6 |
| @uppy/companion-client |   3.1.2 | @uppy/unsplash         |   3.2.0 |
| @uppy/core             |   3.1.2 | @uppy/url              |   3.3.0 |
| @uppy/dashboard        |   3.3.2 | @uppy/utils            |   5.2.0 |
| @uppy/locales          |   3.1.0 | @uppy/xhr-upload       |   3.1.1 |
| @uppy/provider-views   |   3.2.0 | uppy                   |   3.7.0 |
| @uppy/react            |   3.1.1 |                        |         |

- @uppy/aws-s3-multipart,@uppy/aws-s3,@uppy/tus,@uppy/xhr-upload: make sure that we reset serverToken when an upload fails (Mikael Finstad / #4376)
- @uppy/aws-s3-multipart: do not auto-open sockets, clean them up on abort (Antoine du Hamel)
- @uppy/aws-s3: Update types (Minh Hieu / #4294)
- @uppy/companion-client: do not open socket more than once (Artur Paikin)
- @uppy/companion: add `service: 'companion'` to periodic ping (Mikael Finstad / #4383)
- @uppy/companion: add connection keep-alive to dropbox (Mikael Finstad / #4365)
- @uppy/companion: add missing env variable for standalone option (Mikael Finstad / #4382)
- @uppy/companion: add S3 prefix env variable (Mikael Finstad / #4320)
- @uppy/companion: allow local ips when testing (Mikael Finstad / #4328)
- @uppy/companion: fix typo in redis-emitter.js (Ikko Eltociear Ashimine / #4362)
- @uppy/companion: merge Provider/SearchProvider (Mikael Finstad / #4330)
- @uppy/companion: only body parse when needed & increased body size for s3 (Mikael Finstad / #4372)
- @uppy/core: fix bug with `setOptions` (Nguyễn bảo Trung / #4350)
- @uppy/locales: locales: add es_MX (Kevin van Zonneveld / #4393)
- @uppy/locales: locales: add hi_IN (Kevin van Zonneveld / #4391)
- @uppy/provider-views: fix race condition when adding folders (Mikael Finstad / #4384)
- @uppy/provider-views: UI: Use form attribite with a form in doc root to prevent outer form submit (Artur Paikin / #4283)
- @uppy/transloadit: fix socket error message (Artur Paikin / #4352)
- @uppy/tus: do not auto-open sockets, clean them up on abort (Antoine du Hamel)
- meta: add version info in the bundlers CI (Antoine du Hamel / #4386)
- meta: deploy to Heroku on every companion commit (Mikael Finstad / #4367)
- meta: example: migrate `redux` to ESM (Antoine du Hamel / #4158)
- meta: fix all ESLint warnings and turn them into errors (Antoine du Hamel / #4398)
- meta: fixup! website: update links to work under the new URL (Antoine du Hamel / #4371)
- meta: remove duplicate outdated OSS support docs (Mikael Finstad, Artur Paikin / #4364)
- meta: use overrides to make sure no uppy package is fetch from npm (Antoine du Hamel / #4395)
- website: add a deprecation notice and a link to the new website (Antoine du Hamel / #4370)
- website: fix home page (Antoine du Hamel)
- website: Remove the website (Merlijn Vos / #4369)
- website: update links to work under the new URL (Antoine du Hamel / #4371)
HeavenFox pushed a commit to docsend/uppy that referenced this pull request Jun 27, 2023
| Package                | Version | Package                | Version |
| ---------------------- | ------- | ---------------------- | ------- |
| @uppy/aws-s3           |   3.0.6 | @uppy/status-bar       |   3.1.0 |
| @uppy/aws-s3-multipart |   3.1.3 | @uppy/transloadit      |   3.1.2 |
| @uppy/companion        |   4.4.0 | @uppy/tus              |   3.0.6 |
| @uppy/companion-client |   3.1.2 | @uppy/unsplash         |   3.2.0 |
| @uppy/core             |   3.1.2 | @uppy/url              |   3.3.0 |
| @uppy/dashboard        |   3.3.2 | @uppy/utils            |   5.2.0 |
| @uppy/locales          |   3.1.0 | @uppy/xhr-upload       |   3.1.1 |
| @uppy/provider-views   |   3.2.0 | uppy                   |   3.7.0 |
| @uppy/react            |   3.1.1 |                        |         |

- @uppy/aws-s3-multipart,@uppy/aws-s3,@uppy/tus,@uppy/xhr-upload: make sure that we reset serverToken when an upload fails (Mikael Finstad / transloadit#4376)
- @uppy/aws-s3-multipart: do not auto-open sockets, clean them up on abort (Antoine du Hamel)
- @uppy/aws-s3: Update types (Minh Hieu / transloadit#4294)
- @uppy/companion-client: do not open socket more than once (Artur Paikin)
- @uppy/companion: add `service: 'companion'` to periodic ping (Mikael Finstad / transloadit#4383)
- @uppy/companion: add connection keep-alive to dropbox (Mikael Finstad / transloadit#4365)
- @uppy/companion: add missing env variable for standalone option (Mikael Finstad / transloadit#4382)
- @uppy/companion: add S3 prefix env variable (Mikael Finstad / transloadit#4320)
- @uppy/companion: allow local ips when testing (Mikael Finstad / transloadit#4328)
- @uppy/companion: fix typo in redis-emitter.js (Ikko Eltociear Ashimine / transloadit#4362)
- @uppy/companion: merge Provider/SearchProvider (Mikael Finstad / transloadit#4330)
- @uppy/companion: only body parse when needed & increased body size for s3 (Mikael Finstad / transloadit#4372)
- @uppy/core: fix bug with `setOptions` (Nguyễn bảo Trung / transloadit#4350)
- @uppy/locales: locales: add es_MX (Kevin van Zonneveld / transloadit#4393)
- @uppy/locales: locales: add hi_IN (Kevin van Zonneveld / transloadit#4391)
- @uppy/provider-views: fix race condition when adding folders (Mikael Finstad / transloadit#4384)
- @uppy/provider-views: UI: Use form attribite with a form in doc root to prevent outer form submit (Artur Paikin / transloadit#4283)
- @uppy/transloadit: fix socket error message (Artur Paikin / transloadit#4352)
- @uppy/tus: do not auto-open sockets, clean them up on abort (Antoine du Hamel)
- meta: add version info in the bundlers CI (Antoine du Hamel / transloadit#4386)
- meta: deploy to Heroku on every companion commit (Mikael Finstad / transloadit#4367)
- meta: example: migrate `redux` to ESM (Antoine du Hamel / transloadit#4158)
- meta: fix all ESLint warnings and turn them into errors (Antoine du Hamel / transloadit#4398)
- meta: fixup! website: update links to work under the new URL (Antoine du Hamel / transloadit#4371)
- meta: remove duplicate outdated OSS support docs (Mikael Finstad, Artur Paikin / transloadit#4364)
- meta: use overrides to make sure no uppy package is fetch from npm (Antoine du Hamel / transloadit#4395)
- website: add a deprecation notice and a link to the new website (Antoine du Hamel / transloadit#4370)
- website: fix home page (Antoine du Hamel)
- website: Remove the website (Merlijn Vos / transloadit#4369)
- website: update links to work under the new URL (Antoine du Hamel / transloadit#4371)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants