Skip to content

Commit

Permalink
Merge branch 'dev' of github.com:quasarframework/quasar into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
hawkeye64 committed Nov 6, 2024
2 parents c7ee401 + 6eb5891 commit fdfc20a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 15 deletions.
20 changes: 17 additions & 3 deletions docs/src/pages/quasar-cli-vite/upgrade-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,8 @@ $ bun add --dev vite-plugin-checker

No need to change anything in the `/src`, `/src-capacitor` or `/src-cordova` folders.

Note that the UI code (`/src`) can now use `process.env.TARGET` (which will be "ios" or "android").

### PWA mode changes

The `register-service-worker` dependency is no longer supplied by the CLI. You will have to install it yourself in your project folder.
Expand Down Expand Up @@ -678,7 +680,7 @@ ssr: {
### Bex mode changes <q-badge label="updated for v2.0.0-beta.25+" />
There are quite a few improvements:
* **The BEX mode now has HMR (hot module reload)** for Chrome only!!!
* **The BEX mode now has HMR (hot module reload)!!!** (Chrome only)
* Completely rewrote & redesigned the Quasar Bridge to allow for:
* Sending messages directly between any part of your bex (app, content scripts, background)
* Ability to skip using the bridge altogether
Expand Down Expand Up @@ -714,10 +716,22 @@ $ bun remove events
The `quasar dev` and `quasar build` commands now require an explicit target (chrome or firefox). Should you wish to develop for both simultaneously, then you can spawn two quasar dev commands.
```bash
$ quasar dev -m bex <chrome|firefox>
$ quasar build -m bex <chrome|firefox>
$ quasar dev -m bex -T <chrome|firefox>
$ quasar dev -m bex --target <chrome|firefox>

$ quasar build -m bex -T <chrome|firefox>
$ quasar build -m bex --target <chrome|firefox>
```
Note that the UI code (`/src`) can now use `process.env.TARGET` (which will be "ios" or "android").
### HMR for Chrome
Significant improvements to the DX:
* Full HMR for popup/page
* When changing the background script, the extension will automatically reload.
* When changing a content script, the extension will automatically reload & the tabs using those content scripts will auto-refresh.
#### The quasar.config file
```diff /quasar.config file
Expand Down
2 changes: 1 addition & 1 deletion docs/src/pages/vue-components/icon.md
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,7 @@ Should you want, you can customize the mapping of icon names. This can be done b
- At the top-level if using Composition API with `<script setup>`
- In the `setup()` function if using Composition API
- In the `created()` hook if using Options API
- Set `iconMapFn` in Quasar Vue plugin options, e.g. `app.use(Quasar, { iconMapFn: () => { /* ... */ } })` (for flavours other than Quasar CLI).
- Set `iconMapFn` in Quasar Vue plugin options > config, e.g. `app.use(Quasar, { config: { iconMapFn } })` (for flavours other than Quasar CLI).

We will use the `$q.iconMapFn` approach using `<script setup>` in the use case examples below, but the same principle applies to the other methods.

Expand Down
19 changes: 8 additions & 11 deletions ui/src/components/select/QSelect.js
Original file line number Diff line number Diff line change
Expand Up @@ -665,11 +665,9 @@ export default createComponent({
if (typeof value === 'string' && value.length !== 0) {
const needle = value.toLocaleLowerCase()
const findFn = extractFn => {
const option = props.options.find(opt => extractFn.value(opt).toLocaleLowerCase() === needle)
const option = props.options.find(opt => String(extractFn.value(opt)).toLocaleLowerCase() === needle)

if (option === void 0) {
return false
}
if (option === void 0) return false

if (innerValue.value.indexOf(option) === -1) {
toggleOption(option)
Expand All @@ -681,14 +679,13 @@ export default createComponent({
return true
}
const fillFn = afterFilter => {
if (findFn(getOptionValue) === true) {
return
if (
findFn(getOptionValue) !== true
&& afterFilter !== true
&& findFn(getOptionLabel) !== true
) {
filter(value, true, () => fillFn(true))
}
if (findFn(getOptionLabel) === true || afterFilter === true) {
return
}

filter(value, true, () => fillFn(true))
}

fillFn()
Expand Down

0 comments on commit fdfc20a

Please sign in to comment.