fixes
Build And Push Image / docker (push) Has been cancelled
Details
Build And Push Image / docker (push) Has been cancelled
Details
This commit is contained in:
parent
30136117ce
commit
9572291299
|
|
@ -215,6 +215,7 @@
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { getAllCountries, searchCountries } from '~/utils/countries';
|
import { getAllCountries, searchCountries } from '~/utils/countries';
|
||||||
|
import { getStaticDeviceInfo } from '~/utils/static-device-detection';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
modelValue?: string; // Comma-separated string like "FR,MC,US"
|
modelValue?: string; // Comma-separated string like "FR,MC,US"
|
||||||
|
|
@ -241,9 +242,10 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
const emit = defineEmits<Emits>();
|
const emit = defineEmits<Emits>();
|
||||||
|
|
||||||
// Static mobile detection (no reactive dependencies)
|
// Static mobile detection (no reactive dependencies)
|
||||||
const isMobile = ref(false);
|
const deviceInfo = getStaticDeviceInfo();
|
||||||
const isMobileSafari = ref(false);
|
const isMobile = ref(deviceInfo.isMobile);
|
||||||
const needsPerformanceMode = ref(false);
|
const isMobileSafari = ref(deviceInfo.isMobileSafari);
|
||||||
|
const needsPerformanceMode = ref(deviceInfo.isMobileSafari || deviceInfo.isMobile);
|
||||||
|
|
||||||
// Parse initial nationalities from comma-separated string
|
// Parse initial nationalities from comma-separated string
|
||||||
const parseNationalities = (value: string): string[] => {
|
const parseNationalities = (value: string): string[] => {
|
||||||
|
|
@ -374,14 +376,6 @@ watch(nationalities, () => {
|
||||||
|
|
||||||
// Initialize the model value on mount if needed
|
// Initialize the model value on mount if needed
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// Apply static device detection - no reactive dependencies
|
|
||||||
const { isMobile: deviceIsMobile, isIos, isSafari } = useDevice();
|
|
||||||
|
|
||||||
// Set static values once
|
|
||||||
isMobile.value = deviceIsMobile || false;
|
|
||||||
isMobileSafari.value = (deviceIsMobile && isIos && isSafari) || false;
|
|
||||||
needsPerformanceMode.value = isMobileSafari.value || isMobile.value;
|
|
||||||
|
|
||||||
if (!props.modelValue && validNationalities.value.length > 0) {
|
if (!props.modelValue && validNationalities.value.length > 0) {
|
||||||
updateNationalities();
|
updateNationalities();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { parsePhoneNumber, AsYouType } from 'libphonenumber-js';
|
import { parsePhoneNumber, AsYouType } from 'libphonenumber-js';
|
||||||
import { getPhoneCountriesWithPreferred, searchPhoneCountries, getPhoneCountryByCode, type PhoneCountry } from '~/utils/phone-countries';
|
import { getPhoneCountriesWithPreferred, searchPhoneCountries, getPhoneCountryByCode, type PhoneCountry } from '~/utils/phone-countries';
|
||||||
|
import { getStaticDeviceInfo } from '~/utils/static-device-detection';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
modelValue?: string;
|
modelValue?: string;
|
||||||
|
|
@ -188,8 +189,9 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
const emit = defineEmits<Emits>();
|
const emit = defineEmits<Emits>();
|
||||||
|
|
||||||
// Static mobile detection (no reactive dependencies)
|
// Static mobile detection (no reactive dependencies)
|
||||||
const isMobile = ref(false);
|
const deviceInfo = getStaticDeviceInfo();
|
||||||
const isMobileSafari = ref(false);
|
const isMobile = ref(deviceInfo.isMobile);
|
||||||
|
const isMobileSafari = ref(deviceInfo.isMobileSafari);
|
||||||
|
|
||||||
// Create computed-like object for template compatibility
|
// Create computed-like object for template compatibility
|
||||||
const mobileDetection = computed(() => ({
|
const mobileDetection = computed(() => ({
|
||||||
|
|
@ -324,14 +326,13 @@ watch(dropdownOpen, (isOpen) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Apply static device detection on mount
|
// Component initialization - values already set from static detection
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// Static device detection from Nuxt Device Module - no reactive dependencies
|
// Device detection already applied statically - no additional setup needed
|
||||||
const { isMobile: deviceIsMobile, isIos, isSafari } = useDevice();
|
console.log('[PhoneInputWrapper] Initialized with device info:', {
|
||||||
|
isMobile: deviceInfo.isMobile,
|
||||||
// Apply device state once (static, no reactivity)
|
isMobileSafari: deviceInfo.isMobileSafari
|
||||||
isMobile.value = deviceIsMobile || false;
|
});
|
||||||
isMobileSafari.value = (deviceIsMobile && isIos && isSafari) || false;
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { getStaticDeviceInfo, getDeviceCssClasses, applyMobileSafariOptimizations, getMobileSafariViewportMeta } from '~/utils/static-device-detection';
|
||||||
|
|
||||||
definePageMeta({
|
definePageMeta({
|
||||||
layout: false,
|
layout: false,
|
||||||
|
|
@ -102,8 +103,11 @@ const route = useRoute();
|
||||||
const email = computed(() => route.query.email as string || '');
|
const email = computed(() => route.query.email as string || '');
|
||||||
const partialWarning = computed(() => route.query.warning === 'partial');
|
const partialWarning = computed(() => route.query.warning === 'partial');
|
||||||
|
|
||||||
// Static CSS classes based on device (no reactive dependencies)
|
// Static device detection - no reactive dependencies
|
||||||
const containerClasses = ref('verification-success');
|
const deviceInfo = getStaticDeviceInfo();
|
||||||
|
|
||||||
|
// Static CSS classes - computed once, never reactive
|
||||||
|
const containerClasses = ref(getDeviceCssClasses('verification-success'));
|
||||||
|
|
||||||
// Setup password URL for Keycloak - Fixed URL structure
|
// Setup password URL for Keycloak - Fixed URL structure
|
||||||
const setupPasswordUrl = computed(() => {
|
const setupPasswordUrl = computed(() => {
|
||||||
|
|
@ -123,7 +127,7 @@ useHead({
|
||||||
name: 'description',
|
name: 'description',
|
||||||
content: 'Your email has been successfully verified. You can now log in to the MonacoUSA Portal.'
|
content: 'Your email has been successfully verified. You can now log in to the MonacoUSA Portal.'
|
||||||
},
|
},
|
||||||
{ name: 'viewport', content: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' }
|
{ name: 'viewport', content: getMobileSafariViewportMeta() }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -137,26 +141,19 @@ const goToPasswordSetup = () => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// Track verification
|
// Track verification - Safari iOS reload loop prevention
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// Static device detection from Nuxt Device Module - no reactive dependencies
|
|
||||||
const { isMobile, isIos, isSafari } = useDevice();
|
|
||||||
|
|
||||||
// Detect mobile Safari specifically
|
|
||||||
const isMobileSafari = isMobile && isIos && isSafari;
|
|
||||||
|
|
||||||
// Apply classes once (static, no reactivity)
|
|
||||||
const containerClassList = ['verification-success'];
|
|
||||||
if (isMobile) containerClassList.push('is-mobile');
|
|
||||||
if (isMobileSafari) containerClassList.push('is-mobile-safari');
|
|
||||||
if (isIos) containerClassList.push('is-ios');
|
|
||||||
containerClasses.value = containerClassList.join(' ');
|
|
||||||
|
|
||||||
console.log('[verify-success] Email verification completed', {
|
console.log('[verify-success] Email verification completed', {
|
||||||
email: email.value,
|
email: email.value,
|
||||||
partialWarning: partialWarning.value,
|
partialWarning: partialWarning.value,
|
||||||
setupPasswordUrl: setupPasswordUrl.value
|
setupPasswordUrl: setupPasswordUrl.value
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Apply mobile Safari optimizations early
|
||||||
|
if (deviceInfo.isMobileSafari) {
|
||||||
|
applyMobileSafariOptimizations();
|
||||||
|
console.log('[verify-success] Mobile Safari optimizations applied');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue