feat: update reward version to 1.0.13 and modify dialog button labels for clarity
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 2m31s
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 2m31s
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, onUnmounted, watch, nextTick } from 'vue'
|
||||
import { computed, ref, onMounted, onUnmounted, watch, nextTick } from 'vue'
|
||||
import ModalDialog from '../shared/ModalDialog.vue'
|
||||
import ScheduleModal from '../shared/ScheduleModal.vue'
|
||||
import PendingRewardDialog from './PendingRewardDialog.vue'
|
||||
@@ -95,6 +95,14 @@ const kebabBtnRefs = ref<Map<string, HTMLElement>>(new Map())
|
||||
const showScheduleModal = ref(false)
|
||||
const scheduleTarget = ref<ChildTask | null>(null)
|
||||
|
||||
const pendingDialogReward = computed<Reward | RewardStatus | null>(() => {
|
||||
if (pendingEditOverrideTarget.value?.type === 'reward') {
|
||||
return pendingEditOverrideTarget.value.entity as Reward
|
||||
}
|
||||
|
||||
return selectedReward.value
|
||||
})
|
||||
|
||||
// Expiry timers
|
||||
const expiryTimers = ref<number[]>([])
|
||||
|
||||
@@ -449,6 +457,7 @@ function isChoreScheduledToday(item: ChildTask): boolean {
|
||||
}
|
||||
|
||||
function isChoreExpired(item: ChildTask): boolean {
|
||||
if (item.pending_status === 'pending') return false
|
||||
if (!item.schedule) return false
|
||||
const now = new Date()
|
||||
if (!isScheduledToday(item.schedule, now)) return false
|
||||
@@ -777,6 +786,7 @@ const triggerTask = (task: ChildTask) => {
|
||||
selectedTask.value = task
|
||||
const pendingRewardIds = getPendingRewardIds()
|
||||
if (pendingRewardIds.length > 0) {
|
||||
selectedReward.value = null
|
||||
showPendingRewardDialog.value = true
|
||||
return
|
||||
}
|
||||
@@ -841,13 +851,13 @@ const confirmTriggerTask = async () => {
|
||||
|
||||
const triggerReward = (reward: RewardStatus) => {
|
||||
if (reward.points_needed > 0) return
|
||||
selectedReward.value = reward
|
||||
// If there is a pending reward and it's not this one, show the pending dialog
|
||||
const pendingRewardIds = getPendingRewardIds()
|
||||
if (pendingRewardIds.length > 0 && !reward.redeeming) {
|
||||
showPendingRewardDialog.value = true
|
||||
return
|
||||
}
|
||||
selectedReward.value = reward
|
||||
setTimeout(() => {
|
||||
showRewardConfirm.value = true
|
||||
}, 150)
|
||||
@@ -1158,6 +1168,16 @@ function goToAssignRewards() {
|
||||
<!-- Pending Reward Dialog -->
|
||||
<PendingRewardDialog
|
||||
v-if="showPendingRewardDialog"
|
||||
:reward-name="pendingDialogReward?.name"
|
||||
:child-name="pendingDialogReward ? child?.name : undefined"
|
||||
:image-url="pendingDialogReward?.image_url ?? null"
|
||||
:subtitle="
|
||||
pendingDialogReward
|
||||
? pendingDialogReward.points_needed === 0
|
||||
? 'Reward Ready!'
|
||||
: pendingDialogReward.points_needed + ' more points'
|
||||
: undefined
|
||||
"
|
||||
:message="
|
||||
pendingEditOverrideTarget
|
||||
? 'This reward is currently pending. Changing its cost will cancel the pending request. Would you like to proceed?'
|
||||
@@ -1168,6 +1188,7 @@ function goToAssignRewards() {
|
||||
() => {
|
||||
showPendingRewardDialog = false
|
||||
pendingEditOverrideTarget = null
|
||||
selectedReward = null
|
||||
}
|
||||
"
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user