* refactor FileProgress component; pass hideCancelButton, hidePauseResumeButton and hideRetryButton
* move icons to where they are rendered, rename UppyIcon to uppy-u-icon
* cleanup: rename DashboardItem, remove xmlns
* update docs to specify the option also hides action button on each individual file
* ProviderViews: Improve Instagram’s “video thumbnail”
* Update all provider icons to nicer round ones
* Change “drop files” copy depending on number of acquirers and Dashboard width
* Translator: support multiple components in options
When the source contains multiple placeholders for interpolation, we should ignore chunks that are not strings, because those can be JSX objects and will be otherwise incorrectly turned into strings.
Without this condition we’d get this: [object Object] hello [object Object] my <button>
* Remove unused locale strings
* Rever renderSingleInlineProvider, use Browse button instead of link, tweak styles
* Try “Browse My Device” button
* Introduce “Dark Mode“: new Dashboard option 'theme': 'light', 'dark' or 'auto'
* Refactor to also add uninstall/removeListener for the darkModeMediaQuery; remove all bindings in favor of class properties
* More dark mode styles: Providers, FileCard, tweaking focus, inputs, etc
* My Device: mobile and desktop icons
* add isMobileDevice capability, very simple detection
* More dark mode styles
* refactor
* switch back to single simple my device icon
* chrome 78 for android doesn’t support document.querySelector 👌
* nobr --> span white-space: nowrap
* Major style tweaks for mobile provider list, show dashed borders only when DnD is supported
* Add color after “import from”
just for Russian for now, because I’m thinking if this should be a part of the language string or html? @goto-bus-stop @kvz, what do you think?
* improve isMobileDevice, add tests
* don’t set the isMobileDevice capability in core for now
* add checks for typeof window !== 'undefined', otherwise fails in Node/RN
* update locales
* refactor renderDropFilesSubtitle
* types: stronger typings
* Remove remaining `declare module` things for uppy.use
* Format types standard-style-like
* Add `target` properties to plugin typings
* Add type for `replaceTargetContent` option
* xhr-upload: allow lowercase method
* opt in to stricter typechecks
* use the strictly typed version in all typings tests
* endtoend: use strict types in typescript test
* Add some comments to the typings file so IDEs will warn about untyped use()
* informer: remove obsolete option from typings
* react: generate prop types based on actual options types
* react: update types
* react: fix import in typings test
* companion-client: add `pluginId` property to ProviderOptions type
Co-Authored-By: Ifedapo .A. Olarewaju <ifedapoolarewaju@gmail.com>
* core: remove some `any` types
* *: add locale string types
* *: generate locale typings
* core: fix LocaleStrings<> type
* dashboard: add locale string type tests
* tus: inherit options typings from tus-js-client
* transloadit: add missing options types
* ci: do the required build steps before testing typings
* Support TokenStorage in types, add `title?: string` options
* form: update typings
* types: put TokenStorage type in dependents
* Document Uppy.StrictTypes
* if we pin at least we should use the latest
* Allow document.querySelector
I think it's a eslint-plugin-compat bug that it's marking querySelector
as not available in Android Chrome 78.
Co-authored-by: Ifedapo .A. Olarewaju <ifedapoolarewaju@gmail.com>
* lerna link convert
* ci: use npm ci
* update lockfile
* companion: set `bin` to source file
Since typescript doesn't actually transform anything, we can just use
this.
In a next major version we could set `noEmit: true` in the tsconfig and
stop publishing `lib`.
* companion: do chmod +x on start-server.js
* build: remove obsolete lerna config
* build: explicitly install latest versions when building e2e tests for ci
* Remove versions from private packages
* fix regex
* try fix
* ci: force npm to install to endtoend folder
* ci: fold up e2e build output
* Update netlify deploy preview command
* Remove mentions of npm run bootstrap
* Edit .github/CONTRIBUTING.md instead
* companion: add proxy executable
* companion: fix publish
* Downgrade jest to appease create-react-app
* /examples/dev - added polyfills for easy development in IE11
* @uppy/dashboard - made all svgs not focusable in IE11
* /examples/dev - started sharing serviceWorker registration code
* /examples/dev - added polyfills for IE11 to dev bundle
Webpack likes to pick the ES module versions of modules over CJS
versions. So, if we do `require('preact')`, we can get the ES module
version of it. preact in version 8.3.0 switched its file extension
from `.esm.js` to `.mjs`, which in webpack's default configuration meant
the module implementation became much stricter. The result is that we
get a different value in `require('preact')`.
This older version of preact doesn't use `.mjs` yet so we can safely
`require('preact')` it in webpack. It still picks the ESM version, but
now it uses the looser implementation which is interchangeable for our
purposes.