From a399fe781dcd29de28b8706399473bc3871138a2 Mon Sep 17 00:00:00 2001 From: Bastyen Date: Wed, 20 Mar 2024 16:34:46 +0100 Subject: [PATCH] fix: optimize offline --- package-lock.json | 7 + package.json | 1 + src/assets/arrow-back.svg | 1 + src/assets/backpack.svg | 1 + src/assets/call.svg | 1 + src/assets/check.svg | 1 + src/assets/close.svg | 1 + src/assets/delete.svg | 1 + src/assets/done.svg | 1 + src/assets/download.svg | 1 + src/assets/download_for_offline.svg | 1 + src/assets/filter_list.svg | 1 + src/assets/link.svg | 1 + src/assets/list.svg | 1 + src/assets/location_searching.svg | 1 + src/assets/mail.svg | 1 + src/assets/map.svg | 1 + src/assets/moving.svg | 1 + src/assets/offline_pin.svg | 1 + src/assets/open_in_full.svg | 1 + src/assets/refresh.svg | 1 + src/assets/search.svg | 1 + src/assets/summarize.svg | 1 + src/assets/timelapse.svg | 1 + src/assets/translate.svg | 1 + src/assets/warning.svg | 1 + src/components/grw-app/grw-app.tsx | 16 +- .../grw-common-button/grw-common-button.scss | 8 - .../grw-common-button/grw-common-button.tsx | 7 +- .../grw-extended-fab/grw-extended-fab.scss | 9 -- .../grw-extended-fab/grw-extended-fab.tsx | 9 +- src/components/grw-filter/grw-filter.scss | 9 -- src/components/grw-filter/grw-filter.tsx | 19 ++- .../grw-information-desk.scss | 8 - .../grw-information-desk.tsx | 25 ++- src/components/grw-map/grw-map.scss | 4 - src/components/grw-map/grw-map.tsx | 16 +- src/components/grw-poi-detail/grw-poi.scss | 4 - src/components/grw-poi-detail/grw-poi.tsx | 4 +- src/components/grw-search/grw-search.scss | 9 -- src/components/grw-search/grw-search.tsx | 6 +- .../grw-select-language.scss | 8 - .../grw-select-language.tsx | 6 +- src/components/grw-switch/grw-switch.scss | 8 - src/components/grw-switch/grw-switch.tsx | 6 +- .../grw-touristic-content-card.scss | 4 - .../grw-touristic-content-card.tsx | 6 +- .../grw-touristic-content-detail.scss | 8 - .../grw-touristic-content-detail.tsx | 14 +- .../grw-touristic-contents-list.scss | 8 - .../grw-touristic-event-card.scss | 4 - .../grw-touristic-event-card.tsx | 6 +- .../grw-touristic-event-detail.scss | 8 - .../grw-touristic-event-detail.tsx | 15 +- .../grw-touristic-events-list.scss | 8 - .../grw-trek-card/grw-trek-card.scss | 9 -- .../grw-trek-card/grw-trek-card.tsx | 55 ++----- .../grw-trek-detail/grw-trek-detail.scss | 12 +- .../grw-trek-detail/grw-trek-detail.tsx | 151 +++++------------- .../grw-treks-list/grw-treks-list.scss | 8 - src/global/global.scss | 5 - src/services/grw-db.service.ts | 4 +- src/store/grw-touristic-content-provider.tsx | 2 - src/store/grw-touristic-event-provider.tsx | 2 - src/store/grw-trek-provider.tsx | 87 ++++------ src/store/grw-treks-provider.tsx | 53 +++--- src/utils/utils.ts | 51 ++++-- stencil.config.ts | 3 +- 68 files changed, 246 insertions(+), 490 deletions(-) create mode 100644 src/assets/arrow-back.svg create mode 100644 src/assets/backpack.svg create mode 100644 src/assets/call.svg create mode 100644 src/assets/check.svg create mode 100644 src/assets/close.svg create mode 100644 src/assets/delete.svg create mode 100644 src/assets/done.svg create mode 100644 src/assets/download.svg create mode 100644 src/assets/download_for_offline.svg create mode 100644 src/assets/filter_list.svg create mode 100644 src/assets/link.svg create mode 100644 src/assets/list.svg create mode 100644 src/assets/location_searching.svg create mode 100644 src/assets/mail.svg create mode 100644 src/assets/map.svg create mode 100644 src/assets/moving.svg create mode 100644 src/assets/offline_pin.svg create mode 100644 src/assets/open_in_full.svg create mode 100644 src/assets/refresh.svg create mode 100644 src/assets/search.svg create mode 100644 src/assets/summarize.svg create mode 100644 src/assets/timelapse.svg create mode 100644 src/assets/translate.svg create mode 100644 src/assets/warning.svg diff --git a/package-lock.json b/package-lock.json index f5a49b63..91d2a5ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,6 +43,7 @@ "@types/leaflet.markercluster": "^1.5.4", "babel-loader": "^9.1.3", "glob": "^9.3.4", + "stencil-inline-svg": "^1.1.0", "typescript": "^5.4.2", "vitepress": "^1.0.0-rc.45" } @@ -23360,6 +23361,12 @@ "node": ">= 0.8" } }, + "node_modules/stencil-inline-svg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stencil-inline-svg/-/stencil-inline-svg-1.1.0.tgz", + "integrity": "sha512-couT89xzsoycwHOIAgnl3WBpXaVRQ3ZlUBINo7HsT/AtWaFW9cxGlAzsK2JzkzxK7yUuoeIpdH2fNlvuH06DRg==", + "dev": true + }, "node_modules/stop-iteration-iterator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", diff --git a/package.json b/package.json index 6f293ee2..a41d98d3 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "@types/leaflet.markercluster": "^1.5.4", "babel-loader": "^9.1.3", "glob": "^9.3.4", + "stencil-inline-svg": "^1.1.0", "typescript": "^5.4.2", "vitepress": "^1.0.0-rc.45" }, diff --git a/src/assets/arrow-back.svg b/src/assets/arrow-back.svg new file mode 100644 index 00000000..3c30733a --- /dev/null +++ b/src/assets/arrow-back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/backpack.svg b/src/assets/backpack.svg new file mode 100644 index 00000000..4c9bd70d --- /dev/null +++ b/src/assets/backpack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/call.svg b/src/assets/call.svg new file mode 100644 index 00000000..7a09a9fa --- /dev/null +++ b/src/assets/call.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/check.svg b/src/assets/check.svg new file mode 100644 index 00000000..ca2c672e --- /dev/null +++ b/src/assets/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/close.svg b/src/assets/close.svg new file mode 100644 index 00000000..6ce1edf2 --- /dev/null +++ b/src/assets/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/delete.svg b/src/assets/delete.svg new file mode 100644 index 00000000..2040c2b6 --- /dev/null +++ b/src/assets/delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/done.svg b/src/assets/done.svg new file mode 100644 index 00000000..ca2c672e --- /dev/null +++ b/src/assets/done.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/download.svg b/src/assets/download.svg new file mode 100644 index 00000000..259bec73 --- /dev/null +++ b/src/assets/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/download_for_offline.svg b/src/assets/download_for_offline.svg new file mode 100644 index 00000000..24f8940f --- /dev/null +++ b/src/assets/download_for_offline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/filter_list.svg b/src/assets/filter_list.svg new file mode 100644 index 00000000..f63c7f24 --- /dev/null +++ b/src/assets/filter_list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/link.svg b/src/assets/link.svg new file mode 100644 index 00000000..7ea331e1 --- /dev/null +++ b/src/assets/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/list.svg b/src/assets/list.svg new file mode 100644 index 00000000..b32bee26 --- /dev/null +++ b/src/assets/list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/location_searching.svg b/src/assets/location_searching.svg new file mode 100644 index 00000000..69d4f814 --- /dev/null +++ b/src/assets/location_searching.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/mail.svg b/src/assets/mail.svg new file mode 100644 index 00000000..e07a2376 --- /dev/null +++ b/src/assets/mail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/map.svg b/src/assets/map.svg new file mode 100644 index 00000000..68419ae6 --- /dev/null +++ b/src/assets/map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/moving.svg b/src/assets/moving.svg new file mode 100644 index 00000000..ad93f43a --- /dev/null +++ b/src/assets/moving.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/offline_pin.svg b/src/assets/offline_pin.svg new file mode 100644 index 00000000..cec9ec1d --- /dev/null +++ b/src/assets/offline_pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/open_in_full.svg b/src/assets/open_in_full.svg new file mode 100644 index 00000000..26c1f6e1 --- /dev/null +++ b/src/assets/open_in_full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/refresh.svg b/src/assets/refresh.svg new file mode 100644 index 00000000..72c5c960 --- /dev/null +++ b/src/assets/refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/search.svg b/src/assets/search.svg new file mode 100644 index 00000000..d7a6a05e --- /dev/null +++ b/src/assets/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/summarize.svg b/src/assets/summarize.svg new file mode 100644 index 00000000..ac5b0778 --- /dev/null +++ b/src/assets/summarize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/timelapse.svg b/src/assets/timelapse.svg new file mode 100644 index 00000000..208c2e34 --- /dev/null +++ b/src/assets/timelapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/translate.svg b/src/assets/translate.svg new file mode 100644 index 00000000..c32377e2 --- /dev/null +++ b/src/assets/translate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/warning.svg b/src/assets/warning.svg new file mode 100644 index 00000000..da1e7eba --- /dev/null +++ b/src/assets/warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/grw-app/grw-app.tsx b/src/components/grw-app/grw-app.tsx index 9e94c0d6..e5b7f1cb 100644 --- a/src/components/grw-app/grw-app.tsx +++ b/src/components/grw-app/grw-app.tsx @@ -1,7 +1,9 @@ +import { Capacitor } from '@capacitor/core'; import { Component, Host, h, Listen, State, Prop, Element, Watch, Event, EventEmitter, Fragment } from '@stencil/core'; import { translate } from 'i18n/i18n'; import state, { reset } from 'store/store'; -import { handleTreksFiltersAndSearch } from 'utils/utils'; +import { handleTreksFiltersAndSearch, imagesRegExp, revokeObjectURL } from 'utils/utils'; +import ArrowBackIcon from '../../assets/arrow-back.svg'; @Component({ tag: 'grw-app', @@ -279,6 +281,13 @@ export class GrwApp { handleBackButton() { if (window.history.state && window.history.state.isInitialHistoryWithDetails) { + if (state.currentTrek.offline && !Capacitor.isNativePlatform()) { + revokeObjectURL(state.currentPois, imagesRegExp, ['url']); + revokeObjectURL(state.trekTouristicEvents, imagesRegExp, ['url']); + revokeObjectURL(state.trekTouristicContents, imagesRegExp, ['url']); + revokeObjectURL(state.currentInformationDesks, imagesRegExp); + revokeObjectURL(state.currentTrek, imagesRegExp, ['url']); + } this.onDetailsClose(); const url = new URL(window.location.toString()); url.searchParams.delete('trek'); @@ -561,10 +570,7 @@ export class GrwApp { ) : (
)} diff --git a/src/components/grw-common-button/grw-common-button.scss b/src/components/grw-common-button/grw-common-button.scss index 51407f13..eec3b332 100644 --- a/src/components/grw-common-button/grw-common-button.scss +++ b/src/components/grw-common-button/grw-common-button.scss @@ -1,11 +1,3 @@ -.material-symbols { - font-family: 'Material Symbols Outlined'; -} - -.material-symbols-outlined { - font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48; -} - .common-button { user-select: none; cursor: pointer; diff --git a/src/components/grw-common-button/grw-common-button.tsx b/src/components/grw-common-button/grw-common-button.tsx index 14ba8375..13a6ca34 100644 --- a/src/components/grw-common-button/grw-common-button.tsx +++ b/src/components/grw-common-button/grw-common-button.tsx @@ -1,4 +1,6 @@ import { Component, Host, Prop, h } from '@stencil/core'; +import RefreshIcon from '../../assets/refresh.svg'; +import FilterListIcon from '../../assets/filter_list.svg'; @Component({ tag: 'grw-common-button', @@ -20,10 +22,7 @@ export class GrwCommonButton { }} > )} @@ -85,10 +87,7 @@ export class GrwInformationDeskDetail { )} {this.informationDesk.phone && (
- {/* @ts-ignore */} - - call - + {this.informationDesk.phone} @@ -96,10 +95,7 @@ export class GrwInformationDeskDetail { )} {this.informationDesk.email && (
- {/* @ts-ignore */} - - mail - + {this.informationDesk.email} @@ -107,10 +103,7 @@ export class GrwInformationDeskDetail { )} {this.informationDesk.website && (