Use portal for modals

This commit is contained in:
Tusooa Zhu 2022-03-17 00:06:26 -04:00 committed by FloatingGhost
parent c77e3c31ed
commit 97fba09fd2
9 changed files with 115 additions and 109 deletions

View file

@ -59,8 +59,9 @@
</button> </button>
</template> </template>
</Popover> </Popover>
<portal to="modal">
<confirm-modal <confirm-modal
:showing="showingConfirmBlock" v-if="showingConfirmBlock"
:title="$t('user_card.block_confirm_title')" :title="$t('user_card.block_confirm_title')"
:confirm-text="$t('user_card.block_confirm_accept_button')" :confirm-text="$t('user_card.block_confirm_accept_button')"
:cancel-text="$t('user_card.block_confirm_cancel_button')" :cancel-text="$t('user_card.block_confirm_cancel_button')"
@ -77,6 +78,7 @@
/> />
</i18n> </i18n>
</confirm-modal> </confirm-modal>
</portal>
</div> </div>
</template> </template>

View file

@ -11,12 +11,7 @@ const ConfirmModal = {
components: { components: {
DialogModal DialogModal
}, },
data: {
},
props: { props: {
showing: {
type: Boolean
},
title: { title: {
type: String type: String
}, },

View file

@ -1,6 +1,5 @@
<template> <template>
<dialog-modal <dialog-modal
v-if="showing"
class="confirm-modal" class="confirm-modal"
:on-cancel="onCancel" :on-cancel="onCancel"
> >

View file

@ -167,8 +167,9 @@
</a> </a>
</div> </div>
</div> </div>
<portal to="modal">
<confirm-modal <confirm-modal
:showing="showingConfirmLogout" v-if="showingConfirmLogout"
:title="$t('login.logout_confirm_title')" :title="$t('login.logout_confirm_title')"
:confirm-text="$t('login.logout_confirm_accept_button')" :confirm-text="$t('login.logout_confirm_accept_button')"
:cancel-text="$t('login.logout_confirm_cancel_button')" :cancel-text="$t('login.logout_confirm_cancel_button')"
@ -177,6 +178,7 @@
> >
{{ $t('login.logout_confirm') }} {{ $t('login.logout_confirm') }}
</confirm-modal> </confirm-modal>
</portal>
</nav> </nav>
</template> </template>
<script src="./desktop_nav.js"></script> <script src="./desktop_nav.js"></script>

View file

@ -124,9 +124,10 @@
class="fa-scale-110 fa-old-padding" class="fa-scale-110 fa-old-padding"
icon="ellipsis-h" icon="ellipsis-h"
/> />
</button> </span>
<portal to="modal">
<ConfirmModal <ConfirmModal
:showing="showingDeleteDialog" v-if="showingDeleteDialog"
:title="$t('status.delete_confirm_title')" :title="$t('status.delete_confirm_title')"
:cancel-text="$t('status.delete_confirm_cancel_button')" :cancel-text="$t('status.delete_confirm_cancel_button')"
:confirm-text="$t('status.delete_confirm_accept_button')" :confirm-text="$t('status.delete_confirm_accept_button')"
@ -135,6 +136,7 @@
> >
{{ $t('status.delete_confirm') }} {{ $t('status.delete_confirm') }}
</ConfirmModal> </ConfirmModal>
</portal>
</template> </template>
</Popover> </Popover>
</template> </template>

View file

@ -1,5 +1,4 @@
<template> <template>
<div>
<button <button
class="btn button-default follow-button" class="btn button-default follow-button"
:class="{ toggled: isPressed }" :class="{ toggled: isPressed }"
@ -8,9 +7,9 @@
@click="onClick" @click="onClick"
> >
{{ label }} {{ label }}
</button> <portal to="modal">
<confirm-modal <confirm-modal
:showing="showingConfirmUnfollow" v-if="showingConfirmUnfollow"
:title="$t('user_card.unfollow_confirm_title')" :title="$t('user_card.unfollow_confirm_title')"
:confirm-text="$t('user_card.unfollow_confirm_accept_button')" :confirm-text="$t('user_card.unfollow_confirm_accept_button')"
:cancel-text="$t('user_card.unfollow_confirm_cancel_button')" :cancel-text="$t('user_card.unfollow_confirm_cancel_button')"
@ -27,7 +26,8 @@
/> />
</i18n> </i18n>
</confirm-modal> </confirm-modal>
</div> </portal>
</button>
</template> </template>
<script src="./follow_button.js"></script> <script src="./follow_button.js"></script>

View file

@ -76,8 +76,9 @@
ref="sideDrawer" ref="sideDrawer"
:logout="logout" :logout="logout"
/> />
<portal to="modal">
<confirm-modal <confirm-modal
:showing="showingConfirmLogout" v-if="showingConfirmLogout"
:title="$t('login.logout_confirm_title')" :title="$t('login.logout_confirm_title')"
:confirm-text="$t('login.logout_confirm_accept_button')" :confirm-text="$t('login.logout_confirm_accept_button')"
:cancel-text="$t('login.logout_confirm_cancel_button')" :cancel-text="$t('login.logout_confirm_cancel_button')"
@ -86,6 +87,7 @@
> >
{{ $t('login.logout_confirm') }} {{ $t('login.logout_confirm') }}
</confirm-modal> </confirm-modal>
</portal>
</div> </div>
</template> </template>

View file

@ -33,8 +33,9 @@
> >
{{ status.repeat_num }} {{ status.repeat_num }}
</span> </span>
<portal to="modal">
<confirm-modal <confirm-modal
:showing="showingConfirmDialog" v-if="showingConfirmDialog"
:title="$t('status.repeat_confirm_title')" :title="$t('status.repeat_confirm_title')"
:confirm-text="$t('status.repeat_confirm_accept_button')" :confirm-text="$t('status.repeat_confirm_accept_button')"
:cancel-text="$t('status.repeat_confirm_cancel_button')" :cancel-text="$t('status.repeat_confirm_cancel_button')"
@ -43,6 +44,7 @@
> >
{{ $t('status.repeat_confirm') }} {{ $t('status.repeat_confirm') }}
</confirm-modal> </confirm-modal>
</portal>
</div> </div>
</template> </template>

View file

@ -295,8 +295,9 @@
:handle-links="true" :handle-links="true"
/> />
</div> </div>
<portal to="modal">
<confirm-modal <confirm-modal
:showing="showingConfirmMute" v-if="showingConfirmMute"
:title="$t('user_card.mute_confirm_title')" :title="$t('user_card.mute_confirm_title')"
:confirm-text="$t('user_card.mute_confirm_accept_button')" :confirm-text="$t('user_card.mute_confirm_accept_button')"
:cancel-text="$t('user_card.mute_confirm_cancel_button')" :cancel-text="$t('user_card.mute_confirm_cancel_button')"
@ -313,6 +314,7 @@
/> />
</i18n> </i18n>
</confirm-modal> </confirm-modal>
</portal>
</div> </div>
</template> </template>