MediaWiki:Gadget-codextest-main.vue

    From Patch demo (907557,2 907556,4)

    Note: After publishing, you may have to bypass your browser's cache to see the changes.

    • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
    • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
    • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
    • Opera: Press Ctrl-F5.
    <template>
        <p class="testgadget-name">
            Hello {{ displayName }}!
        </p>
        <cdx-button
            action="progressive"
            weight="primary"
            @click="dialogOpen = true"
        >
            Change your name
        </cdx-button>
        <change-name-dialog v-model:open="dialogOpen" @save-name="saveName"></change-name-dialog>
    </template>
    
    <script>
    const { ref } = require( 'vue' );
    const { CdxButton } = require( '@wikimedia/codex' );
    const ChangeNameDialog = require( './codextest-ChangeNameDialog.vue' );
    
    module.exports = {
        components: {
            CdxButton,
            ChangeNameDialog
        },
        setup() {
            const dialogOpen = ref( false );
            const displayName = ref( '(name unknown)' );
    
            function saveName( newName ) {
                displayName.value = newName;
                dialogOpen.value = false;
            }
    
            return {
                dialogOpen,
                displayName,
                saveName
            };
        }
    };
    </script>
    
    <style>
    .testgadget-name {
        font-style: italic;
    }
    </style>