mobile-react-infinite-calendar
Version:
A mobile-optimized infinite scroll calendar component for React
32 lines (31 loc) • 988 B
JavaScript
/**
* ID 생성 유틸리티
*/
/**
* 캘린더 이벤트용 ID 생성
*/
export const generateEventId = (date, title, index) => {
const sanitizedTitle = title.replace(/[^a-zA-Z0-9가-힣]/g, '_');
return `event-${date}-${sanitizedTitle}-${index}`;
};
/**
* 공휴일용 ID 생성
*/
export const generateHolidayId = (date, name) => {
const sanitizedName = name ? name.replace(/[^a-zA-Z0-9가-힣]/g, '_') : 'holiday';
return `holiday-${date}-${sanitizedName}`;
};
/**
* 일반적인 ID 생성 (prefix + date + title + index)
*/
export const generateId = (prefix, date, title, index) => {
const sanitizedTitle = title.replace(/[^a-zA-Z0-9가-힣]/g, '_');
const suffix = index !== undefined ? `-${index}` : '';
return `${prefix}-${date}-${sanitizedTitle}${suffix}`;
};
/**
* UUID 스타일의 랜덤 ID 생성 (간단 버전)
*/
export const generateRandomId = () => {
return Math.random().toString(36).substring(2) + Date.now().toString(36);
};