disable optimization request btn if already sent

This commit is contained in:
isUnknown 2025-02-05 11:22:09 +01:00
parent 77a0a42606
commit c73b9d671b
7 changed files with 114 additions and 81 deletions

View file

@ -16,8 +16,8 @@
proposals.length === 1 && isDialogOpen
? activeProposal.title
? activeProposal.title
: "Design to light"
: "Design to light"
: 'Design to light'
: 'Design to light'
}}
</h2>
<button
@ -41,8 +41,8 @@
proposal.title
? proposal.title
: index === 0
? "Proposition initiale"
: "Alternative " + index
? 'Proposition initiale'
: 'Alternative ' + index
}}
</button>
</nav>
@ -163,11 +163,15 @@
</div>
<footer v-if="proposals.length === 1 && !isDialogOpen" class="p-16">
<button
disabled
:disabled="page.hasOptimizationRequest ? '' : undefined"
class="btn btn--white w-full"
@click="handleOptimizationButtonClick"
>
Demander une expertise doptimisation
{{
page.hasOptimizationRequest
? "Demande d'expertise en cours de traitement…"
: 'Demander une expertise doptimisation'
}}
</button>
</footer>
</section>
@ -178,18 +182,19 @@
/>
</template>
<script setup>
import OptimizationRequestDialog from "./OptimizationRequestDialog.vue";
import dayjs from "dayjs";
import "dayjs/locale/fr";
import { storeToRefs } from "pinia";
import { ref, onBeforeUnmount, computed } from "vue";
import { useDialogStore } from "../../stores/dialog";
import { useRoute, useRouter } from "vue-router";
import OptimizationRequestDialog from './OptimizationRequestDialog.vue';
import dayjs from 'dayjs';
import 'dayjs/locale/fr';
import { storeToRefs } from 'pinia';
import { ref, onBeforeUnmount, computed } from 'vue';
import { useDialogStore } from '../../stores/dialog';
import { usePageStore } from '../../stores/page';
const { proposals } = defineProps({
proposals: Array,
});
const { page } = storeToRefs(usePageStore());
const { openedFile } = storeToRefs(useDialogStore());
const isDialogOpen = computed(() => {
@ -202,29 +207,29 @@ const isDialogOpen = computed(() => {
const isOptimizationDialogOpen = ref(false);
dayjs.locale("fr");
dayjs.locale('fr');
const emits = defineEmits(["close"]);
const emits = defineEmits(['close']);
proposals[0].isActive = true;
const activeProposal = ref(proposals[0]);
window.addEventListener("keyup", closeOnEscape);
window.addEventListener("click", close);
window.addEventListener('keyup', closeOnEscape);
window.addEventListener('click', close);
onBeforeUnmount(() => {
window.removeEventListener("keyup", closeOnEscape);
window.removeEventListener("click", close);
window.removeEventListener('keyup', closeOnEscape);
window.removeEventListener('click', close);
});
// Functions
function closeOnEscape(event) {
if (event.key === "Escape") emits("close");
if (event.key === 'Escape') emits('close');
}
function close() {
emits("close");
emits('close');
}
function preventClose(event) {