fix(mixin): access platformService as property, not function, in PlatformServiceMixin

- Fix all computed properties to use platformService as a property
- Add descriptive @ts-expect-error comments for dynamic property access
- Resolves 'this.platformService is not a function' runtime error
- Lint clean
This commit is contained in:
Matthew Raymer
2025-07-05 13:37:28 +00:00
parent 8cdcd9bbdb
commit b65ac693be
2 changed files with 15 additions and 12 deletions

View File

@@ -100,6 +100,13 @@ export default class DataExportSection extends Vue {
*/ */
notify = createNotifyHelpers(this.$notify); notify = createNotifyHelpers(this.$notify);
/**
* NOTE: PlatformServiceMixin provides both concise helpers (e.g. $contacts, capabilities)
* and the full platformService instance for advanced/native features (e.g. writeAndShareFile).
* Always use 'this.platformService' as a property (never as a function).
*/
declare readonly platformService: import("@/services/PlatformService").PlatformService;
/** /**
* Computed property to check if we're on web platform * Computed property to check if we're on web platform
*/ */

View File

@@ -121,30 +121,26 @@ export const PlatformServiceMixin = {
* Platform detection utilities * Platform detection utilities
*/ */
isCapacitor(): boolean { isCapacitor(): boolean {
return (this as unknown as VueComponentWithMixin) // @ts-expect-error Accessing computed property value from Vue instance
.platformService() return this["platformService"].isCapacitor();
.isCapacitor();
}, },
isWeb(): boolean { isWeb(): boolean {
return (this as unknown as VueComponentWithMixin) // @ts-expect-error Accessing computed property value from Vue instance
.platformService() return this["platformService"].isWeb();
.isWeb();
}, },
isElectron(): boolean { isElectron(): boolean {
return (this as unknown as VueComponentWithMixin) // @ts-expect-error Accessing computed property value from Vue instance
.platformService() return this["platformService"].isElectron();
.isElectron();
}, },
/** /**
* Platform capabilities * Platform capabilities
*/ */
capabilities() { capabilities() {
return (this as unknown as VueComponentWithMixin) // @ts-expect-error Accessing computed property value from Vue instance
.platformService() return this["platformService"].getCapabilities();
.getCapabilities();
}, },
}, },