55 lines
2.6 KiB
TypeScript
55 lines
2.6 KiB
TypeScript
export * from "./mui/theme";
|
||
export * from "./DecodeJWT";
|
||
|
||
/**
|
||
* Генерирует название медиа по умолчанию в разных форматах
|
||
*
|
||
* Примеры использования:
|
||
* - Для достопримечательности с названием: "Михайловский замок_mikhail-zamok_Фото"
|
||
* - Для достопримечательности без названия: "Название_mikhail-zamok_Фото"
|
||
* - Для статьи: "Михайловский замок_mikhail-zamok_Факты" (где "Факты" - название статьи)
|
||
*
|
||
* @param objectName - Название объекта (достопримечательности, города и т.д.)
|
||
* @param fileName - Название файла
|
||
* @param mediaType - Тип медиа (число) или название статьи
|
||
* @param isArticle - Флаг, указывающий что медиа добавляется к статье
|
||
* @returns Строка в нужном формате
|
||
*/
|
||
export const generateDefaultMediaName = (
|
||
objectName: string,
|
||
fileName: string,
|
||
mediaType: number | string,
|
||
isArticle: boolean = false
|
||
): string => {
|
||
// Убираем расширение из названия файла
|
||
const fileNameWithoutExtension = fileName.split(".").slice(0, -1).join(".");
|
||
|
||
if (isArticle && typeof mediaType === "string") {
|
||
// Для статей: "Название достопримечательности_название файла_название статьи"
|
||
return `${objectName}_${fileNameWithoutExtension}_${mediaType}`;
|
||
} else if (typeof mediaType === "number") {
|
||
// Получаем название типа медиа
|
||
const mediaTypeLabels: Record<number, string> = {
|
||
1: "Фото",
|
||
2: "Видео",
|
||
3: "Иконка",
|
||
4: "Водяной знак",
|
||
5: "Панорама",
|
||
6: "3Д-модель",
|
||
};
|
||
|
||
const mediaTypeLabel = mediaTypeLabels[mediaType] || "Медиа";
|
||
|
||
if (objectName && objectName.trim() !== "") {
|
||
// Если есть название объекта: "Название объекта_название файла_тип медиа"
|
||
return `${objectName}_${fileNameWithoutExtension}_${mediaTypeLabel}`;
|
||
} else {
|
||
// Если нет названия объекта: "Название_название файла_тип медиа"
|
||
return `Название_${fileNameWithoutExtension}_${mediaTypeLabel}`;
|
||
}
|
||
}
|
||
|
||
// Fallback
|
||
return `${objectName || "Название"}_${fileNameWithoutExtension}_Медиа`;
|
||
};
|