<template>
    <DocSectionText v-bind="$attrs">
        <p>Dynamic dialogs are controlled via the <i>DialogService</i> that needs to be installed as an application plugin.</p>
    </DocSectionText>
    <DocSectionCode :code="code1" hideToggleCode importCode hideCodeSandbox hideStackBlitz />
    <div class="doc-section-description">
        <p><i>$dialog</i> is available as a property in the application instance for Options API. The service can be injected with the <i>useDialog</i> function for Composition API.</p>
    </div>
    <DocSectionCode :code="code2" importCode hideCodeSandbox hideStackBlitz />
</template>

<script>
export default {
    data() {
        return {
            code1: {
                basic: `
import {createApp} from 'vue';
import DialogService from 'primevue/dialogservice';

const app = createApp(App);
app.use(DialogService);`
            },
            code2: {
                basic: `
import { useDialog } from 'primevue/usedialog';

const dialog = useDialog();`,
                options: `const dialogRef = this.$dialog;`,
                composition: `
import { useDialog } from 'primevue/usedialog';

const dialog = useDialog();`
            }
        };
    }
};
</script>