diff --git a/apps/frontend/app/(tabs)/two.tsx b/apps/frontend/app/(tabs)/two.tsx
index 3752f9e..b6d80a3 100644
--- a/apps/frontend/app/(tabs)/two.tsx
+++ b/apps/frontend/app/(tabs)/two.tsx
@@ -31,12 +31,13 @@ export default function SearchScreen() {
setLoading(true);
try {
const user = await usersApi.getUserByName(query);
- // Переходим к профилю пользователя по его ID
router.push(`/user/${user.id}` as any);
setSearchQuery('');
- } catch (error: any) {
+ }
+ catch (error: any) {
Alert.alert('Пользователь не найден', error.message || 'Пользователь с таким именем не существует');
- } finally {
+ }
+ finally {
setLoading(false);
}
};
diff --git a/apps/frontend/app/save/[id].tsx b/apps/frontend/app/save/[id].tsx
index 9feb462..0a71ecd 100644
--- a/apps/frontend/app/save/[id].tsx
+++ b/apps/frontend/app/save/[id].tsx
@@ -46,10 +46,12 @@ export default function SaveDetailScreen() {
setDescription(data.description || '');
setTags(data.tags.join(', ') || '');
setVisibility(data.visibility);
- } catch (error: any) {
+ }
+ catch (error: any) {
Alert.alert('Ошибка', error.message || 'Не удалось загрузить сейв');
router.back();
- } finally {
+ }
+ finally {
setLoading(false);
}
};
@@ -71,9 +73,11 @@ export default function SaveDetailScreen() {
setSave(updated as SaveDetailResponse);
setEditing(false);
Alert.alert('Успех', 'Сейв обновлен');
- } catch (error: any) {
+ }
+ catch (error: any) {
Alert.alert('Ошибка', error.message || 'Не удалось обновить сейв');
- } finally {
+ }
+ finally {
setSaving(false);
}
};
@@ -105,7 +109,6 @@ export default function SaveDetailScreen() {
const handleShare = async () => {
if (!save) return;
- // Используем прямой URL из S3
const shareUrl = save.url;
if (shareUrl) {
@@ -114,7 +117,8 @@ export default function SaveDetailScreen() {
message: shareUrl,
url: shareUrl,
});
- } catch (error) {
+ }
+ catch (error) {
console.error('Ошибка при попытке поделиться:', error);
}
}
@@ -123,17 +127,15 @@ export default function SaveDetailScreen() {
const handleCopyShareUrl = async () => {
if (!save || !save.shareUrl) return;
- // Формируем полный URL для доступа к сейву по share token
const shareUrl = `${API_BASE_URL}/saves/${save.id}?share=${save.shareUrl}`;
try {
- // Используем Share API - на некоторых платформах это позволяет скопировать
await Share.share({
message: `Ссылка для доступа к сейву: ${shareUrl}`,
url: shareUrl,
});
- } catch (error) {
- // Если Share не работает, показываем Alert с URL для ручного копирования
+ }
+ catch (error) {
Alert.alert(
'Ссылка для доступа',
`Скопируйте эту ссылку:\n\n${shareUrl}`,
@@ -149,21 +151,19 @@ export default function SaveDetailScreen() {
router.push(`/user/${save.userId}` as any);
};
- // Создаем видеоплеер (хуки должны вызываться до условных возвратов)
const videoPlayer = useVideoPlayer(
save?.type === 'video' ? save?.url ?? null : null,
(player) => {
- // Автоматически не запускаем воспроизведение
player.muted = false;
}
);
- // Обновляем источник видео при изменении save
useEffect(() => {
const updateVideoSource = async () => {
if (save?.type === 'video' && save?.url) {
await videoPlayer.replaceAsync(save.url);
- } else if (save && save.type !== 'video') {
+ }
+ else if (save && save.type !== 'video') {
await videoPlayer.replaceAsync(null);
}
};
@@ -183,10 +183,8 @@ export default function SaveDetailScreen() {
}
const isOwner = user?.id === save.userId;
- // Используем прямой URL из S3 вместо /download эндпоинта
const mediaUrl = save.url;
- // Компонент для отображения медиа
const renderMedia = () => {
if (save.type === 'video') {
return (
@@ -198,7 +196,8 @@ export default function SaveDetailScreen() {
fullscreenOptions={{ enable: true }}
/>
);
- } else if (save.type === 'image' || save.type === 'gif') {
+ }
+ else if (save.type === 'image' || save.type === 'gif') {
return (
);
- } else {
+ }
+ else {
return (
diff --git a/apps/frontend/app/user/[slug].tsx b/apps/frontend/app/user/[slug].tsx
index 4c4f9d9..e2ced3c 100644
--- a/apps/frontend/app/user/[slug].tsx
+++ b/apps/frontend/app/user/[slug].tsx
@@ -31,9 +31,11 @@ export default function UserProfileScreen() {
try {
const data = await savesApi.getPublicSavesByUser(slug);
setSaves(data);
- } catch (error: any) {
+ }
+ catch (error: any) {
Alert.alert('Ошибка', error.message || 'Не удалось загрузить сейвы');
- } finally {
+ }
+ finally {
setLoading(false);
setRefreshing(false);
}
@@ -54,18 +56,16 @@ export default function UserProfileScreen() {
router.push(`/save/${save.id}`);
};
- // Компонент для элемента списка
const SaveItem = React.memo(({ item }: { item: SaveListItem }) => {
if (!item) return null;
const itemColorScheme = useColorScheme();
const itemColors = Colors[itemColorScheme ?? 'light'];
-
const videoPlayer = useVideoPlayer(
item.type === 'video' ? item.url : null,
(player) => {
- player.muted = true; // Без звука в списке
- player.loop = true; // Зацикливание для превью
+ player.muted = true;
+ player.loop = true;
}
);