Repository: louislam/uptime-kuma
File: src/components/notifications/Threema.vue (Vue)

Code before:
<template>
    <div class="mb-3">
        <label class="form-label" for="threema-recipient">{{ $t("threemaRecipientType") }}</label>
        <select
            id="threema-recipient" v-model="$parent.notification.threemaRecipientType" :required="true"
            class="form-select"
        >
            <option value="identity">{{ $t("threemaRecipientTypeIdentity") }}</option>
            <option value="phone">{{ $t("threemaRecipientTypePhone") }}</option>
            <option value="email">{{ $t("threemaRecipientTypeEmail") }}</option>
        </select>
    </div>
    <div v-if="$parent.notification.threemaRecipientType === 'identity'" class="mb-3">
        <label class="form-label" for="threema-recipient">{{ $t("threemaRecipient") }} {{ $t("threemaRecipientTypeIdentity") }} <small>({{ $t("threemaRecipientTypeIdentityFormat") }})</small></label>
        <input
            id="threema-recipient"
            v-model="$parent.notification.threemaRecipient"
            class="form-control"
            minlength="8"
            maxlength="8"
            pattern="[A-Z0-9]{8}"
            required
            type="text"
        >
    </div>
    <div v-if="$parent.notification.threemaRecipientType === 'phone'" class="mb-3">
        <label class="form-label" for="threema-recipient">{{ $t("threemaRecipient") }}  {{ $t("threemaRecipientTypePhone") }} <small>({{ $t("threemaRecipientTypePhoneFormat") }})</small></label>
        <input
            id="threema-recipient"
            v-model="$parent.notification.threemaRecipient"
            class="form-control"
            maxlength="15"
            pattern="\d{1,15}"
            required
            type="text"
        >
    </div>
    <div v-if="$parent.notification.threemaRecipientType === 'email'" class="mb-3">
        <label class="form-label" for="threema-recipient">{{ $t("threemaRecipient") }} {{ $t("threemaRecipientTypeEmail") }}</label>

Review comment (suggestion):
Please move the helptexts below the input instead of including them here via a `<small>` tag. (=> lets not be different on this aspect than the other notification providers)

Code after:
<template>
    <div class="mb-3">
        <label class="form-label" for="threema-recipient">{{ $t("threemaRecipientType") }}</label>
        <select
            id="threema-recipient" v-model="$parent.notification.threemaRecipientType" required
            class="form-select"
        >
            <option value="identity">{{ $t("threemaRecipientTypeIdentity") }}</option>
            <option value="phone">{{ $t("threemaRecipientTypePhone") }}</option>
            <option value="email">{{ $t("threemaRecipientTypeEmail") }}</option>
        </select>
    </div>
    <div v-if="$parent.notification.threemaRecipientType === 'identity'" class="mb-3">
        <label class="form-label" for="threema-recipient">{{ $t("threemaRecipient") }} {{ $t("threemaRecipientTypeIdentity") }}</label>
        <input
            id="threema-recipient"
            v-model="$parent.notification.threemaRecipient"
            class="form-control"
            minlength="8"
            maxlength="8"
            pattern="[A-Z0-9]{8}"
            required
            type="text"
        >
        <div class="form-text">
            <p>{{ $t("threemaRecipientTypeIdentityFormat") }}</p>
        </div>
    </div>
    <div v-else-if="$parent.notification.threemaRecipientType === 'phone'" class="mb-3">
        <label class="form-label" for="threema-recipient">{{ $t("threemaRecipient") }} {{ $t("threemaRecipientTypePhone") }}</label>
        <input
            id="threema-recipient"
            v-model="$parent.notification.threemaRecipient"
            class="form-control"
            maxlength="15"
            pattern="\d{1,15}"
            required
            type="text"
        >