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);
/**
* 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
*/

View File

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