forked from trent_larson/crowd-funder-for-time-pwa
fix linting
This commit is contained in:
@@ -40,10 +40,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<h3
|
<h3 v-if="record.issuer.known" class="font-semibold leading-tight">
|
||||||
v-if="record.issuer.known"
|
|
||||||
class="font-semibold leading-tight"
|
|
||||||
>
|
|
||||||
{{ record.issuer.displayName }}
|
{{ record.issuer.displayName }}
|
||||||
</h3>
|
</h3>
|
||||||
<p class="ms-auto text-xs text-slate-500 italic">
|
<p class="ms-auto text-xs text-slate-500 italic">
|
||||||
@@ -97,7 +94,9 @@
|
|||||||
<div v-if="record.providerPlanName">
|
<div v-if="record.providerPlanName">
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
path: '/project/' + encodeURIComponent(record.providerPlanHandleId || ''),
|
path:
|
||||||
|
'/project/' +
|
||||||
|
encodeURIComponent(record.providerPlanHandleId || ''),
|
||||||
}"
|
}"
|
||||||
title="View project details"
|
title="View project details"
|
||||||
>
|
>
|
||||||
@@ -125,17 +124,17 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
<font-awesome
|
<font-awesome
|
||||||
v-else
|
v-else
|
||||||
@click="notifyHiddenPerson"
|
|
||||||
icon="eye-slash"
|
icon="eye-slash"
|
||||||
class="text-slate-300 !size-[3rem] sm:!size-[4rem]"
|
class="text-slate-300 !size-[3rem] sm:!size-[4rem]"
|
||||||
|
@click="notifyHiddenPerson"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<!-- Unknown Person -->
|
<!-- Unknown Person -->
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<font-awesome
|
<font-awesome
|
||||||
@click="notifyUnknownPerson"
|
|
||||||
icon="person-circle-question"
|
icon="person-circle-question"
|
||||||
class="text-slate-300 text-[3rem] sm:text-[4rem]"
|
class="text-slate-300 text-[3rem] sm:text-[4rem]"
|
||||||
|
@click="notifyUnknownPerson"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -156,7 +155,9 @@
|
|||||||
<div
|
<div
|
||||||
class="absolute inset-x-[7rem] sm:inset-x-[12rem] mx-2 top-1/2 -translate-y-1/2"
|
class="absolute inset-x-[7rem] sm:inset-x-[12rem] mx-2 top-1/2 -translate-y-1/2"
|
||||||
>
|
>
|
||||||
<div class="text-sm text-center leading-none font-semibold pe-2 sm:pe-4">
|
<div
|
||||||
|
class="text-sm text-center leading-none font-semibold pe-2 sm:pe-4"
|
||||||
|
>
|
||||||
{{ fetchAmount }}
|
{{ fetchAmount }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -181,7 +182,9 @@
|
|||||||
<div v-if="record.recipientProjectName">
|
<div v-if="record.recipientProjectName">
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
path: '/project/' + encodeURIComponent(record.fulfillsPlanHandleId || ''),
|
path:
|
||||||
|
'/project/' +
|
||||||
|
encodeURIComponent(record.fulfillsPlanHandleId || ''),
|
||||||
}"
|
}"
|
||||||
title="View project details"
|
title="View project details"
|
||||||
>
|
>
|
||||||
@@ -209,17 +212,17 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
<font-awesome
|
<font-awesome
|
||||||
v-else
|
v-else
|
||||||
@click="notifyHiddenPerson"
|
|
||||||
icon="eye-slash"
|
icon="eye-slash"
|
||||||
class="text-slate-300 !size-[3rem] sm:!size-[4rem]"
|
class="text-slate-300 !size-[3rem] sm:!size-[4rem]"
|
||||||
|
@click="notifyHiddenPerson"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<!-- Unknown Person -->
|
<!-- Unknown Person -->
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<font-awesome
|
<font-awesome
|
||||||
@click="notifyUnknownPerson"
|
|
||||||
icon="person-circle-question"
|
icon="person-circle-question"
|
||||||
class="text-slate-300 text-[3rem] sm:text-[4rem]"
|
class="text-slate-300 text-[3rem] sm:text-[4rem]"
|
||||||
|
@click="notifyUnknownPerson"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -273,7 +276,7 @@ export default class ActivityListItem extends Vue {
|
|||||||
title: "Person Outside Your Network",
|
title: "Person Outside Your Network",
|
||||||
text: "This person is not visible to you.",
|
text: "This person is not visible to you.",
|
||||||
},
|
},
|
||||||
3000
|
3000,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -285,7 +288,7 @@ export default class ActivityListItem extends Vue {
|
|||||||
title: "Unidentified Person",
|
title: "Unidentified Person",
|
||||||
text: "Nobody specific was recognized.",
|
text: "Nobody specific was recognized.",
|
||||||
},
|
},
|
||||||
3000
|
3000,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,9 @@
|
|||||||
<div class="text-lg text-center font-bold relative">
|
<div class="text-lg text-center font-bold relative">
|
||||||
<h1 id="ViewHeading" class="text-center font-bold">
|
<h1 id="ViewHeading" class="text-center font-bold">
|
||||||
<span v-if="uploading">Uploading Image…</span>
|
<span v-if="uploading">Uploading Image…</span>
|
||||||
<span v-else-if="blob">{{ crop ? 'Crop Image' : 'Preview Image' }}</span>
|
<span v-else-if="blob">{{
|
||||||
|
crop ? "Crop Image" : "Preview Image"
|
||||||
|
}}</span>
|
||||||
<span v-else-if="showCameraPreview">Upload Image</span>
|
<span v-else-if="showCameraPreview">Upload Image</span>
|
||||||
<span v-else>Add Photo</span>
|
<span v-else>Add Photo</span>
|
||||||
</h1>
|
</h1>
|
||||||
@@ -119,7 +121,9 @@
|
|||||||
playsinline
|
playsinline
|
||||||
muted
|
muted
|
||||||
></video>
|
></video>
|
||||||
<div class="absolute bottom-4 inset-x-0 flex items-center justify-center gap-4">
|
<div
|
||||||
|
class="absolute bottom-4 inset-x-0 flex items-center justify-center gap-4"
|
||||||
|
>
|
||||||
<button
|
<button
|
||||||
class="bg-white text-slate-800 p-3 rounded-full text-2xl leading-none"
|
class="bg-white text-slate-800 p-3 rounded-full text-2xl leading-none"
|
||||||
@click="capturePhoto"
|
@click="capturePhoto"
|
||||||
@@ -278,9 +282,9 @@ const inputImageFileNameRef = ref<Blob>();
|
|||||||
},
|
},
|
||||||
defaultCameraMode: {
|
defaultCameraMode: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'environment',
|
default: "environment",
|
||||||
validator: (value: string) => ['environment', 'user'].includes(value)
|
validator: (value: string) => ["environment", "user"].includes(value),
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
export default class ImageMethodDialog extends Vue {
|
export default class ImageMethodDialog extends Vue {
|
||||||
@@ -323,7 +327,7 @@ export default class ImageMethodDialog extends Vue {
|
|||||||
private cameraStream: MediaStream | null = null;
|
private cameraStream: MediaStream | null = null;
|
||||||
|
|
||||||
/** Current camera facing mode */
|
/** Current camera facing mode */
|
||||||
private currentFacingMode: 'environment' | 'user' = 'environment';
|
private currentFacingMode: "environment" | "user" = "environment";
|
||||||
|
|
||||||
private platformService = PlatformServiceFactory.getInstance();
|
private platformService = PlatformServiceFactory.getInstance();
|
||||||
URL = window.URL || window.webkitURL;
|
URL = window.URL || window.webkitURL;
|
||||||
@@ -391,7 +395,7 @@ export default class ImageMethodDialog extends Vue {
|
|||||||
this.crop = !!crop;
|
this.crop = !!crop;
|
||||||
this.imageCallback = setImageFn;
|
this.imageCallback = setImageFn;
|
||||||
this.visible = true;
|
this.visible = true;
|
||||||
this.currentFacingMode = this.defaultCameraMode as 'environment' | 'user';
|
this.currentFacingMode = this.defaultCameraMode as "environment" | "user";
|
||||||
|
|
||||||
// Start camera preview immediately
|
// Start camera preview immediately
|
||||||
logger.debug("Starting camera preview from open()");
|
logger.debug("Starting camera preview from open()");
|
||||||
@@ -465,7 +469,10 @@ export default class ImageMethodDialog extends Vue {
|
|||||||
logger.debug("Current showCameraPreview state:", this.showCameraPreview);
|
logger.debug("Current showCameraPreview state:", this.showCameraPreview);
|
||||||
logger.debug("Platform capabilities:", this.platformCapabilities);
|
logger.debug("Platform capabilities:", this.platformCapabilities);
|
||||||
logger.debug("MediaDevices available:", !!navigator.mediaDevices);
|
logger.debug("MediaDevices available:", !!navigator.mediaDevices);
|
||||||
logger.debug("getUserMedia available:", !!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia));
|
logger.debug(
|
||||||
|
"getUserMedia available:",
|
||||||
|
!!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia),
|
||||||
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.cameraState = "initializing";
|
this.cameraState = "initializing";
|
||||||
@@ -492,13 +499,16 @@ export default class ImageMethodDialog extends Vue {
|
|||||||
videoElement.srcObject = stream;
|
videoElement.srcObject = stream;
|
||||||
await new Promise((resolve) => {
|
await new Promise((resolve) => {
|
||||||
videoElement.onloadedmetadata = () => {
|
videoElement.onloadedmetadata = () => {
|
||||||
videoElement.play().then(() => {
|
videoElement
|
||||||
logger.debug("Video element started playing");
|
.play()
|
||||||
resolve(true);
|
.then(() => {
|
||||||
}).catch(error => {
|
logger.debug("Video element started playing");
|
||||||
logger.error("Error playing video:", error);
|
resolve(true);
|
||||||
throw error;
|
})
|
||||||
});
|
.catch((error) => {
|
||||||
|
logger.error("Error playing video:", error);
|
||||||
|
throw error;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@@ -510,17 +520,16 @@ export default class ImageMethodDialog extends Vue {
|
|||||||
let errorMessage =
|
let errorMessage =
|
||||||
error instanceof Error ? error.message : "Failed to access camera";
|
error instanceof Error ? error.message : "Failed to access camera";
|
||||||
if (
|
if (
|
||||||
error instanceof Error && (
|
error instanceof Error &&
|
||||||
error.name === "NotReadableError" ||
|
(error.name === "NotReadableError" || error.name === "TrackStartError")
|
||||||
error.name === "TrackStartError"
|
) {
|
||||||
)) {
|
|
||||||
errorMessage =
|
errorMessage =
|
||||||
"Camera is in use by another application. Please close any other apps or browser tabs using the camera and try again.";
|
"Camera is in use by another application. Please close any other apps or browser tabs using the camera and try again.";
|
||||||
} else if (
|
} else if (
|
||||||
error instanceof Error && (
|
error instanceof Error &&
|
||||||
error.name === "NotAllowedError" ||
|
(error.name === "NotAllowedError" ||
|
||||||
error.name === "PermissionDeniedError"
|
error.name === "PermissionDeniedError")
|
||||||
)) {
|
) {
|
||||||
errorMessage =
|
errorMessage =
|
||||||
"Camera access was denied. Please allow camera access in your browser settings.";
|
"Camera access was denied. Please allow camera access in your browser settings.";
|
||||||
}
|
}
|
||||||
@@ -590,11 +599,12 @@ export default class ImageMethodDialog extends Vue {
|
|||||||
|
|
||||||
async rotateCamera() {
|
async rotateCamera() {
|
||||||
// Toggle between front and back cameras
|
// Toggle between front and back cameras
|
||||||
this.currentFacingMode = this.currentFacingMode === 'environment' ? 'user' : 'environment';
|
this.currentFacingMode =
|
||||||
|
this.currentFacingMode === "environment" ? "user" : "environment";
|
||||||
|
|
||||||
// Stop current stream
|
// Stop current stream
|
||||||
if (this.cameraStream) {
|
if (this.cameraStream) {
|
||||||
this.cameraStream.getTracks().forEach(track => track.stop());
|
this.cameraStream.getTracks().forEach((track) => track.stop());
|
||||||
this.cameraStream = null;
|
this.cameraStream = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -96,10 +96,7 @@ db.on("populate", async () => {
|
|||||||
try {
|
try {
|
||||||
await db.settings.add(DEFAULT_SETTINGS);
|
await db.settings.add(DEFAULT_SETTINGS);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error(
|
logger.error("Error populating the database with default settings:", error);
|
||||||
"Error populating the database with default settings:",
|
|
||||||
error,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
import { Filesystem, Directory, Encoding } from "@capacitor/filesystem";
|
import { Filesystem, Directory, Encoding } from "@capacitor/filesystem";
|
||||||
import { Camera, CameraResultType, CameraSource, CameraDirection } from "@capacitor/camera";
|
import {
|
||||||
|
Camera,
|
||||||
|
CameraResultType,
|
||||||
|
CameraSource,
|
||||||
|
CameraDirection,
|
||||||
|
} from "@capacitor/camera";
|
||||||
import { Share } from "@capacitor/share";
|
import { Share } from "@capacitor/share";
|
||||||
import {
|
import {
|
||||||
SQLiteConnection,
|
SQLiteConnection,
|
||||||
@@ -696,7 +701,7 @@ export class CapacitorPlatformService implements PlatformService {
|
|||||||
* @returns Promise that resolves when the camera is rotated
|
* @returns Promise that resolves when the camera is rotated
|
||||||
*/
|
*/
|
||||||
async rotateCamera(): Promise<void> {
|
async rotateCamera(): Promise<void> {
|
||||||
this.currentDirection = this.currentDirection === 'BACK' ? 'FRONT' : 'BACK';
|
this.currentDirection = this.currentDirection === "BACK" ? "FRONT" : "BACK";
|
||||||
logger.debug(`Camera rotated to ${this.currentDirection} camera`);
|
logger.debug(`Camera rotated to ${this.currentDirection} camera`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -593,9 +593,7 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<div id="sectionImportContactsSettings" class="mt-4">
|
<div id="sectionImportContactsSettings" class="mt-4">
|
||||||
<h2 class="text-slate-500 text-sm font-bold">
|
<h2 class="text-slate-500 text-sm font-bold">Import Contacts</h2>
|
||||||
Import Contacts
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<div class="ml-4 mt-2">
|
<div class="ml-4 mt-2">
|
||||||
<input type="file" class="ml-2" @change="uploadImportFile" />
|
<input type="file" class="ml-2" @change="uploadImportFile" />
|
||||||
|
|||||||
@@ -983,7 +983,8 @@ export default class ContactQRScanShow extends Vue {
|
|||||||
) as HTMLVideoElement;
|
) as HTMLVideoElement;
|
||||||
if (videoElement) {
|
if (videoElement) {
|
||||||
// Mirror if it's desktop or front camera on mobile
|
// Mirror if it's desktop or front camera on mobile
|
||||||
const shouldMirror = this.isDesktop || (this.isFrontCamera && !this.isDesktop);
|
const shouldMirror =
|
||||||
|
this.isDesktop || (this.isFrontCamera && !this.isDesktop);
|
||||||
videoElement.style.transform = shouldMirror ? "scaleX(-1)" : "none";
|
videoElement.style.transform = shouldMirror ? "scaleX(-1)" : "none";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
<font-awesome
|
<font-awesome
|
||||||
icon="chair"
|
icon="chair"
|
||||||
class="fa-fw text-2xl"
|
class="fa-fw text-2xl"
|
||||||
@click="this.$router.push({ name: 'onboard-meeting-list' })"
|
@click="$router.push({ name: 'onboard-meeting-list' })"
|
||||||
/>
|
/>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
@@ -193,7 +193,9 @@
|
|||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="flex-shrink-0 w-12 h-12 flex items-center justify-center">
|
<div
|
||||||
|
class="flex-shrink-0 w-12 h-12 flex items-center justify-center"
|
||||||
|
>
|
||||||
<EntityIcon
|
<EntityIcon
|
||||||
:contact="contact"
|
:contact="contact"
|
||||||
:icon-size="48"
|
:icon-size="48"
|
||||||
@@ -230,7 +232,10 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="showGiveNumbers && contact.did != activeDid" class="flex gap-2 items-center">
|
<div
|
||||||
|
v-if="showGiveNumbers && contact.did != activeDid"
|
||||||
|
class="flex gap-2 items-center"
|
||||||
|
>
|
||||||
<button
|
<button
|
||||||
class="text-sm bg-gradient-to-b from-blue-400 to-blue-700 shadow-[inset_0_-1px_0_0_rgba(0,0,0,0.5)] text-white px-2 py-1.5 rounded-l-md"
|
class="text-sm bg-gradient-to-b from-blue-400 to-blue-700 shadow-[inset_0_-1px_0_0_rgba(0,0,0,0.5)] text-white px-2 py-1.5 rounded-l-md"
|
||||||
:title="givenToMeDescriptions[contact.did] || ''"
|
:title="givenToMeDescriptions[contact.did] || ''"
|
||||||
|
|||||||
@@ -162,12 +162,12 @@
|
|||||||
<div class="mt-6 h-96 w-full mx-auto">
|
<div class="mt-6 h-96 w-full mx-auto">
|
||||||
<l-map
|
<l-map
|
||||||
ref="projectMap"
|
ref="projectMap"
|
||||||
|
class="z-40"
|
||||||
@ready="onMapReady"
|
@ready="onMapReady"
|
||||||
@moveend="onMoveEnd"
|
@moveend="onMoveEnd"
|
||||||
@movestart="onMoveStart"
|
@movestart="onMoveStart"
|
||||||
@zoomend="onZoomEnd"
|
@zoomend="onZoomEnd"
|
||||||
@zoomstart="onZoomStart"
|
@zoomstart="onZoomStart"
|
||||||
class="z-40"
|
|
||||||
>
|
>
|
||||||
<l-tile-layer
|
<l-tile-layer
|
||||||
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
|
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
|
||||||
@@ -198,17 +198,18 @@
|
|||||||
-->
|
-->
|
||||||
</span>
|
</span>
|
||||||
<span v-else-if="isAnywhereActive"
|
<span v-else-if="isAnywhereActive"
|
||||||
>No {{ isProjectsActive ? 'projects' : 'people' }} were found with that search.</span
|
>No {{ isProjectsActive ? "projects" : "people" }} were found with
|
||||||
|
that search.</span
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Results List -->
|
<!-- Results List -->
|
||||||
<InfiniteScroll @reached-bottom="loadMoreData">
|
<InfiniteScroll @reached-bottom="loadMoreData">
|
||||||
<ul
|
<ul
|
||||||
id="listDiscoverResults"
|
|
||||||
class="border-t border-slate-300 mt-6"
|
|
||||||
v-if="projects.length > 0 || userProfiles.length > 0"
|
v-if="projects.length > 0 || userProfiles.length > 0"
|
||||||
|
id="listDiscoverResults"
|
||||||
|
class="border-t border-slate-300 mt-6"
|
||||||
>
|
>
|
||||||
<!-- Projects List -->
|
<!-- Projects List -->
|
||||||
<template v-if="isProjectsActive">
|
<template v-if="isProjectsActive">
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ export default class OnboardMeetingMembersView extends Vue {
|
|||||||
// Fetch the meeting details to get the project link
|
// Fetch the meeting details to get the project link
|
||||||
const meetingResponse = await this.axios.get(
|
const meetingResponse = await this.axios.get(
|
||||||
`${this.apiServer}/api/partner/groupOnboard/${this.groupId}`,
|
`${this.apiServer}/api/partner/groupOnboard/${this.groupId}`,
|
||||||
{ headers }
|
{ headers },
|
||||||
);
|
);
|
||||||
if (meetingResponse.data?.data?.projectLink) {
|
if (meetingResponse.data?.data?.projectLink) {
|
||||||
this.projectLink = meetingResponse.data.data.projectLink;
|
this.projectLink = meetingResponse.data.data.projectLink;
|
||||||
|
|||||||
@@ -93,7 +93,8 @@
|
|||||||
v-if="
|
v-if="
|
||||||
!isLoading &&
|
!isLoading &&
|
||||||
isInEditOrCreateMode() &&
|
isInEditOrCreateMode() &&
|
||||||
newOrUpdatedMeetingInputs != null /* duplicate check is for typechecks */
|
newOrUpdatedMeetingInputs !=
|
||||||
|
null /* duplicate check is for typechecks */
|
||||||
"
|
"
|
||||||
class="mt-8"
|
class="mt-8"
|
||||||
>
|
>
|
||||||
@@ -169,7 +170,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label for="projectLink" class="block text-sm font-medium text-gray-700"
|
<label
|
||||||
|
for="projectLink"
|
||||||
|
class="block text-sm font-medium text-gray-700"
|
||||||
>Project Link</label
|
>Project Link</label
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
@@ -217,8 +220,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="flex items-center gap-2 cursor-pointer text-blue-600"
|
class="flex items-center gap-2 cursor-pointer text-blue-600"
|
||||||
@click="copyMembersLinkToClipboard"
|
|
||||||
title="Click to copy link for members"
|
title="Click to copy link for members"
|
||||||
|
@click="copyMembersLinkToClipboard"
|
||||||
>
|
>
|
||||||
<span>
|
<span>
|
||||||
• Page for Members
|
• Page for Members
|
||||||
@@ -344,7 +347,9 @@ export default class OnboardMeetingView extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isInCreateMode(): boolean {
|
isInCreateMode(): boolean {
|
||||||
return this.newOrUpdatedMeetingInputs != null && this.currentMeeting == null;
|
return (
|
||||||
|
this.newOrUpdatedMeetingInputs != null && this.currentMeeting == null
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
isInEditOrCreateMode(): boolean {
|
isInEditOrCreateMode(): boolean {
|
||||||
|
|||||||
Reference in New Issue
Block a user