5180 fichiers 38.5 Mo 0 téléchargements 431 vues mis à jour il y a 7 heures ui
nitro-v36-with-renderer-v36 / src / hooks / rooms / widgets / furniture / useFurnitureVimeoWidget.helpers.ts
useFurnitureVimeoWidget.helpers.ts 1.2 Ko Télécharger le fichier
/** The key the official Vimeo handler (`class_3348.VIDEO_ID_KEY`) reads from the furni's map stuff data. */
export const VIMEO_VIDEO_ID_KEY = 'videoId';

/** The server keeps at most this many digits (`InteractionVimeo.MAX_VIDEO_ID_DIGITS`). */
export const VIMEO_MAX_VIDEO_ID_DIGITS = 12;

/**
 * `Number(map.getValue('videoId') ?? 0)`, kept finite and non-negative. The model's
 * FURNITURE_DATA of a map-stuff-data furni is a plain key/value object.
 */
export const readVimeoVideoId = (data: unknown): number => {
    if (!data || typeof data !== 'object') return 0;

    const value = Number((data as Record<string, unknown>)[VIMEO_VIDEO_ID_KEY] ?? 0);

    return Number.isFinite(value) && value > 0 ? Math.floor(value) : 0;
};

/** The id editor's `restrict="0123456789"`, capped to what the server stores. */
export const sanitizeVimeoVideoIdInput = (value: string): string => (value ?? '').replace(/[^0-9]/g, '').slice(0, VIMEO_MAX_VIDEO_ID_DIGITS);

/** The Vimeo player embed for an id, or null when the furni has none. */
export const vimeoPlayerUrl = (videoId: number): string | null => (videoId > 0 ? `https://player.vimeo.com/video/${videoId}?autoplay=1` : null);
15Sujets
1Dépôts
20Membres
3En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser