enrecipes/app/components/modal/ActionDialog.vue

46 lines
1.5 KiB
Vue
Raw Normal View History

2020-10-21 17:54:45 +00:00
<template>
<Page>
<StackLayout class="dialogContainer" :class="appTheme">
<Label class="dialogTitle orkm" :text="`${title}` | L" />
<ScrollView width="100%" :height="height ? height : screenHeight - 256">
<StackLayout>
<MDButton v-for="(item, index) in list" :key="index" class="actionItem" variant="text" :rippleColor="rippleColor" :text="`${item}` | L" @loaded="onLabelLoaded" @tap="tapAction(item)" />
</StackLayout>
</ScrollView>
<GridLayout rows="auto" columns="auto, *, auto" class="actionsContainer">
<MDButton :rippleColor="rippleColor" variant="text" v-if="action" col="0" class="action orkm pull-left" :text="`${action}` | L" @tap="$modal.close(action)" />
<MDButton :rippleColor="rippleColor" variant="text" col="2" class="action orkm pull-right" :text="'CANCEL' | L" @tap="$modal.close(false)" />
</GridLayout>
</StackLayout>
</Page>
2020-10-21 17:54:45 +00:00
</template>
<script>
import {
Application,
Screen
} from "@nativescript/core"
2020-10-21 17:54:45 +00:00
export default {
props: [ "title", "list", "height", "action" ],
computed: {
appTheme() {
return Application.systemAppearance()
},
2020-11-10 18:28:48 +00:00
rippleColor() {
return this.appTheme == "light" ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
2020-11-10 18:28:48 +00:00
},
screenHeight() {
return Math.round( Screen.mainScreen.heightDIPs )
2020-11-10 18:28:48 +00:00
},
2020-10-22 18:36:50 +00:00
},
2020-10-21 17:54:45 +00:00
methods: {
tapAction( item ) {
this.$modal.close( item )
2020-10-21 17:54:45 +00:00
},
onLabelLoaded( args ) {
args.object.android.setGravity( 16 )
2020-11-10 18:28:48 +00:00
},
2020-10-21 17:54:45 +00:00
},
}
</script>