проверка в андроид студио_АВ
This commit is contained in:
parent
babc4e16dd
commit
ecbd91ea93
@ -19,12 +19,14 @@ const CourseCard: React.FC<CourseCardProps> = ({
|
|||||||
progress,
|
progress,
|
||||||
color,
|
color,
|
||||||
icon,
|
icon,
|
||||||
exercises,
|
|
||||||
nextExercise,
|
|
||||||
}) => {
|
}) => {
|
||||||
const history = useHistory()
|
const history = useHistory()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div
|
<div
|
||||||
onClick={() => history.push(`/course/${id}/exercises`)}
|
onClick={() => history.push(`/course/${id}/exercises`)}
|
||||||
className="bg-white/30 backdrop-blur-2xl rounded-3xl p-6 border border-white/20 shadow-xl cursor-pointer hover:shadow-2xl transition-all duration-300 transform hover:scale-[1.02]"
|
className="bg-white/30 backdrop-blur-2xl rounded-3xl p-6 border border-white/20 shadow-xl cursor-pointer hover:shadow-2xl transition-all duration-300 transform hover:scale-[1.02]"
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
import type React from "react"
|
|
||||||
|
|
||||||
// Your custom Home icon component
|
|
||||||
export const CustomHomeIcon = ({ active, size = 24 }: { active: boolean; size?: number }) => (
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width={size}
|
|
||||||
height={size}
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill={active ? "currentColor" : "none"} // Fill when active
|
|
||||||
stroke={active ? "none" : "currentColor"} // Stroke when inactive
|
|
||||||
strokeWidth="2"
|
|
||||||
strokeLinecap="round"
|
|
||||||
strokeLinejoin="round"
|
|
||||||
>
|
|
||||||
<path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" />
|
|
||||||
<polyline points="9 22 9 12 15 12 15 22" />
|
|
||||||
</svg>
|
|
||||||
);
|
|
||||||
|
|
||||||
// You can add other custom icons here if needed in the future
|
|
||||||
// export const CustomAnotherIcon = ({ active, size = 24 }: { active: boolean; size?: number }) => (
|
|
||||||
// <svg>...</svg>
|
|
||||||
// );
|
|
@ -21,7 +21,14 @@ const CourseComplete: React.FC = () => {
|
|||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-gradient-to-br from-green-400 via-cyan-500 to-purple-600 flex items-center justify-center p-4 relative overflow-hidden max-w-4xl mx-auto">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div className="min-h-screen bg-gradient-to-br from-[#3ABBC7] to-[#0D212C] flex items-center justify-center p-4 relative overflow-hidden max-w-4xl mx-auto">
|
||||||
{/* Background Animation */}
|
{/* Background Animation */}
|
||||||
<div className="absolute inset-0">
|
<div className="absolute inset-0">
|
||||||
<div className="absolute top-20 left-10 w-20 h-20 bg-white/10 rounded-full animate-pulse"></div>
|
<div className="absolute top-20 left-10 w-20 h-20 bg-white/10 rounded-full animate-pulse"></div>
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
import type React from "react"
|
import type React from "react"
|
||||||
import { useState } from "react"
|
import { useState } from "react"
|
||||||
import { useHistory, useParams } from "react-router-dom"
|
import { useHistory } from "react-router-dom"
|
||||||
import BottomNavigation from "../components/BottomNavigation"
|
import BottomNavigation from "../components/BottomNavigation"
|
||||||
|
|
||||||
const CourseExercises: React.FC = () => {
|
const CourseExercises: React.FC = () => {
|
||||||
const history = useHistory()
|
const history = useHistory()
|
||||||
const { id } = useParams<{ id: string }>()
|
// const { id } = useParams<{ id: string }>()
|
||||||
const [currentSlide, setCurrentSlide] = useState(0)
|
const [currentSlide, setCurrentSlide] = useState(0)
|
||||||
|
|
||||||
const exercises = [
|
const exercises = [
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
"use client"
|
"use client"
|
||||||
import type React from "react"
|
import type React from "react"
|
||||||
import { useState, useEffect } from "react"
|
import { useState, useEffect } from "react"
|
||||||
import { useHistory, useParams } from "react-router-dom"
|
import { useHistory } from "react-router-dom"
|
||||||
|
|
||||||
import BottomNavigation from "../components/BottomNavigation"
|
import BottomNavigation from "../components/BottomNavigation"
|
||||||
|
|
||||||
|
|
||||||
const Exercise: React.FC = () => {
|
const Exercise: React.FC = () => {
|
||||||
const history = useHistory()
|
const history = useHistory()
|
||||||
const { id } = useParams<{ id: string }>()
|
// const { id } = useParams<{ id: string }>()
|
||||||
const [isPlaying, setIsPlaying] = useState(false)
|
const [isPlaying, setIsPlaying] = useState(false)
|
||||||
const [currentTime, setCurrentTime] = useState(0)
|
const [currentTime, setCurrentTime] = useState(0)
|
||||||
const [totalTime] = useState(900) // 15 minutes in seconds
|
const [totalTime] = useState(900) // 15 minutes in seconds
|
||||||
@ -74,12 +74,12 @@ const Exercise: React.FC = () => {
|
|||||||
)
|
)
|
||||||
|
|
||||||
const RefreshIcon = () => (
|
const RefreshIcon = () => (
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M2.5 2v6h6M21.5 22v-6h-6"/><path d="M22 11.5A10 10 0 0 0 3.2 7.2M2 12.5a10 10 0 0 0 18.8 4.2"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#6F6F6F" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"> <path d="M2.5 2v6h6M21.5 22v-6h-6" /><path d="M22 11.5A10 10 0 0 0 3.2 7.2M2 12.5a10 10 0 0 0 18.8 4.2" /></svg>
|
||||||
)
|
)
|
||||||
|
|
||||||
const CheckIcon = () => (
|
const CheckIcon = () => (
|
||||||
<svg className="w-6 h-6 text-green-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
<svg className="w-6 h-6 text-cyan-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M5 13l4 4L19 7" />
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={3} d="M5 13l4 4L19 7" />
|
||||||
</svg>
|
</svg>
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -115,9 +115,47 @@ const Exercise: React.FC = () => {
|
|||||||
]
|
]
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="bg-gradient-to-br from-[#3ABBC7] to-[#0D212C] py-20 max-w-4xl mx-auto mb-50 overflow_auto">
|
|
||||||
|
<div className="bg-gray-100 max-w-4xl mx-auto mb-50 overflow_auto">
|
||||||
|
|
||||||
|
|
||||||
{/* Header */}
|
{/* Header */}
|
||||||
<div className="sticky top-0 z-40 bg-gradient-to-br from-[#3ABBC7] to-[#0D212C] backdrop-blur-xl pt-12 pb-4 px-4 sm:px-6">
|
<div className="fixed top-0 left-0 right-0 bg-gradient-to-br from-[#3ABBC7] to-[#0D212C] p-4 z-50 shadow-lg rounded-b-3xl">
|
||||||
|
<div className="absolute inset-0 bg-gradient-to-r from-black/10 to-transparent"></div>
|
||||||
|
|
||||||
|
<div className="relative px-4 sm:px-6 py-4 max-w-4xl mx-auto flex flex-row justify-between">
|
||||||
|
|
||||||
|
|
||||||
|
<button
|
||||||
|
onClick={() => history.goBack()}
|
||||||
|
className="w-12 h-12 glass-morphism rounded-2xl flex items-center justify-center border border-white/30 hover:bg-white/30 transition-all duration-300 shadow-lg"
|
||||||
|
>
|
||||||
|
<svg className="w-6 h-6 text-white transform rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M15 19l-7-7L15 5" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<div className="text-center">
|
||||||
|
|
||||||
|
<h1 className="text-xl sm:text-2xl font-semibold text-white">Подъемы ног лежа</h1>
|
||||||
|
<p className="text-cyan-100 text-sm font-medium">Упражнение 1 из 12</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button
|
||||||
|
onClick={() => history.goBack()}
|
||||||
|
className="w-12 h-12 glass-morphism rounded-2xl flex items-center justify-center border border-white/30 hover:bg-white/30 transition-all duration-300 shadow-lg ml-auto"
|
||||||
|
>
|
||||||
|
<svg className="w-6 h-6 text-white transform rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M15 19l-7-7L15 5" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{/* Header */}
|
||||||
|
<div className="sticky top-0 z-40 bg-gradient-to-br from-[#3ABBC7] to-[#0D212C] backdrop-blur-xl pt-40 pb-4 px-4 sm:px-6">
|
||||||
<div className="flex items-center justify-between mb-4">
|
<div className="flex items-center justify-between mb-4">
|
||||||
<button
|
<button
|
||||||
onClick={() => history.goBack()}
|
onClick={() => history.goBack()}
|
||||||
@ -138,8 +176,7 @@ const Exercise: React.FC = () => {
|
|||||||
{Array.from({ length: totalSets }).map((_, index) => (
|
{Array.from({ length: totalSets }).map((_, index) => (
|
||||||
<div
|
<div
|
||||||
key={index}
|
key={index}
|
||||||
className={`w-8 h-8 rounded-full flex items-center justify-center font-bold text-sm transition-all duration-300 ${
|
className={`w-8 h-8 rounded-full flex items-center justify-center font-bold text-sm transition-all duration-300 ${index + 1 <= currentSet
|
||||||
index + 1 <= currentSet
|
|
||||||
? "bg-white text-[#2BACBE] shadow-lg scale-110 ring-2 ring-white"
|
? "bg-white text-[#2BACBE] shadow-lg scale-110 ring-2 ring-white"
|
||||||
: "bg-gray-100 text-gray-600 border border-gray-200"
|
: "bg-gray-100 text-gray-600 border border-gray-200"
|
||||||
}`}
|
}`}
|
||||||
@ -149,8 +186,10 @@ const Exercise: React.FC = () => {
|
|||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{/* Video/Image Section */}
|
{/* Video/Image Section */}
|
||||||
<div className="px-4 sm:px-6 -mt-4 mb-6">
|
<div className="px-4 sm:px-6 mt-10 mb-6">
|
||||||
<div className="glass-morphism rounded-3xl overflow-hidden shadow-2xl border border-white/20 backdrop-blur-2xl">
|
<div className="glass-morphism rounded-3xl overflow-hidden shadow-2xl border border-white/20 backdrop-blur-2xl">
|
||||||
<div className="relative">
|
<div className="relative">
|
||||||
<img
|
<img
|
||||||
@ -246,8 +285,7 @@ const Exercise: React.FC = () => {
|
|||||||
<div className="flex space-x-3">
|
<div className="flex space-x-3">
|
||||||
<button
|
<button
|
||||||
onClick={() => setIsPlaying(!isPlaying)}
|
onClick={() => setIsPlaying(!isPlaying)}
|
||||||
className={`flex-1 font-bold py-3 px-4 rounded-xl transition-all duration-300 transform hover:scale-105 flex items-center justify-center space-x-2 ${
|
className={`flex-1 font-bold py-3 px-4 rounded-xl transition-all duration-300 transform hover:scale-105 flex items-center justify-center space-x-2 ${isPlaying
|
||||||
isPlaying
|
|
||||||
? "bg-gray-400 text-white shadow-lg"
|
? "bg-gray-400 text-white shadow-lg"
|
||||||
: "bg-[#2BACBE] hover:bg-[#2099A8] text-white shadow-lg"
|
: "bg-[#2BACBE] hover:bg-[#2099A8] text-white shadow-lg"
|
||||||
}`}
|
}`}
|
||||||
|
@ -24,91 +24,7 @@ export default function Home() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
const stats = [
|
|
||||||
{
|
|
||||||
value: "12",
|
|
||||||
label: "Дней подряд",
|
|
||||||
color: "from-orange-400 to-red-500",
|
|
||||||
svg: (
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
strokeWidth="2"
|
|
||||||
strokeLinecap="round"
|
|
||||||
strokeLinejoin="round"
|
|
||||||
>
|
|
||||||
<path d="M20 14.66V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.34" />
|
|
||||||
<polygon points="18 2 22 6 12 16 8 12 18 2" />
|
|
||||||
</svg>
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: "85%",
|
|
||||||
label: "Прогресс",
|
|
||||||
color: "from-emerald-400 to-green-500",
|
|
||||||
svg: (
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
strokeWidth="2"
|
|
||||||
strokeLinecap="round"
|
|
||||||
strokeLinejoin="round"
|
|
||||||
>
|
|
||||||
<path d="M3 3v18h18" />
|
|
||||||
<path d="M18.7 8.3L12 15L7.1 10.1" />
|
|
||||||
</svg>
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: "3",
|
|
||||||
label: "Курса",
|
|
||||||
color: "from-cyan-400 to-cyan-500",
|
|
||||||
svg: (
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
strokeWidth="2"
|
|
||||||
strokeLinecap="round"
|
|
||||||
strokeLinejoin="round"
|
|
||||||
>
|
|
||||||
<path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20" />
|
|
||||||
</svg>
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: "45",
|
|
||||||
label: "Минут",
|
|
||||||
color: "from-purple-400 to-pink-500",
|
|
||||||
svg: (
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
strokeWidth="2"
|
|
||||||
strokeLinecap="round"
|
|
||||||
strokeLinejoin="round"
|
|
||||||
>
|
|
||||||
<circle cx="12" cy="12" r="10" />
|
|
||||||
<polyline points="12 6 12 12 16 14" />
|
|
||||||
</svg>
|
|
||||||
),
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
const courses = [
|
const courses = [
|
||||||
{
|
{
|
||||||
@ -196,7 +112,6 @@ export default function Home() {
|
|||||||
{/* Clock SVG */}
|
{/* Clock SVG */}
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 20 20" fill="none">
|
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 20 20" fill="none">
|
||||||
<path fill="#2BACBE" d="M15 1.34A10 10 0 1 1 .005 10.324L0 10l.005-.324A10 10 0 0 1 15 1.34ZM10 4a1 1 0 0 0-.993.883L9 5v5l.009.13a1 1 0 0 0 .197.478l.087.1 3 3 .094.082a1 1 0 0 0 1.226 0l.094-.083.083-.094a1 1 0 0 0 0-1.226l-.083-.094L11 9.585V5l-.007-.117A1 1 0 0 0 10 4Z" />
|
<path fill="#2BACBE" d="M15 1.34A10 10 0 1 1 .005 10.324L0 10l.005-.324A10 10 0 0 1 15 1.34ZM10 4a1 1 0 0 0-.993.883L9 5v5l.009.13a1 1 0 0 0 .197.478l.087.1 3 3 .094.082a1 1 0 0 0 1.226 0l.094-.083.083-.094a1 1 0 0 0 0-1.226l-.083-.094L11 9.585V5l-.007-.117A1 1 0 0 0 10 4Z" />
|
||||||
{/* Удалил лишний circle, так как он не нужен */}
|
|
||||||
<polyline points="12,6,12,12,16,14" />
|
<polyline points="12,6,12,12,16,14" />
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
|
@ -109,52 +109,6 @@ const Settings: React.FC = () => {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
{/* Settings Options */}
|
|
||||||
<div className="px-4 mb-6">
|
|
||||||
<div className="bg-white/80 backdrop-blur-lg rounded-2xl border border-gray-200/50 shadow-lg overflow-hidden">
|
|
||||||
<div className="divide-y divide-gray-200">
|
|
||||||
<button className="w-full px-6 py-4 text-left hover:bg-gray-50 transition-colors">
|
|
||||||
<div className="flex items-center justify-between">
|
|
||||||
<div className="flex items-center space-x-3">
|
|
||||||
<span className="text-xl">🔔</span>
|
|
||||||
<span className="font-medium text-gray-800">Уведомления</span>
|
|
||||||
</div>
|
|
||||||
<span className="text-gray-400">→</span>
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button className="w-full px-6 py-4 text-left hover:bg-gray-50 transition-colors">
|
|
||||||
<div className="flex items-center justify-between">
|
|
||||||
<div className="flex items-center space-x-3">
|
|
||||||
<span className="text-xl">🌙</span>
|
|
||||||
<span className="font-medium text-gray-800">Темная тема</span>
|
|
||||||
</div>
|
|
||||||
<span className="text-gray-400">→</span>
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button className="w-full px-6 py-4 text-left hover:bg-gray-50 transition-colors">
|
|
||||||
<div className="flex items-center justify-between">
|
|
||||||
<div className="flex items-center space-x-3">
|
|
||||||
<span className="text-xl">🌍</span>
|
|
||||||
<span className="font-medium text-gray-800">Язык</span>
|
|
||||||
</div>
|
|
||||||
<span className="text-gray-400">→</span>
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button className="w-full px-6 py-4 text-left hover:bg-gray-50 transition-colors">
|
|
||||||
<div className="flex items-center justify-between">
|
|
||||||
<div className="flex items-center space-x-3">
|
|
||||||
<span className="text-xl">📊</span>
|
|
||||||
<span className="font-medium text-gray-800">Экспорт данных</span>
|
|
||||||
</div>
|
|
||||||
<span className="text-gray-400">→</span>
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Logout Button */}
|
{/* Logout Button */}
|
||||||
<div className="px-4 mb-8">
|
<div className="px-4 mb-8">
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
"use client"
|
"use client"
|
||||||
|
|
||||||
import { useEffect, useState } from "react"
|
import { useEffect, useState } from "react"
|
||||||
|
import { useIonRouter } from '@ionic/react';
|
||||||
|
|
||||||
export default function Welcome() {
|
export default function Welcome() {
|
||||||
const [animationPhase, setAnimationPhase] = useState(0)
|
const [animationPhase, setAnimationPhase] = useState(0)
|
||||||
@ -45,6 +46,19 @@ export default function Welcome() {
|
|||||||
}
|
}
|
||||||
}, [animationPhase]) // Зависимость от animationPhase
|
}, [animationPhase]) // Зависимость от animationPhase
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const router = useIonRouter()
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const timer = setTimeout(() => {
|
||||||
|
router.push("/home", "forward")
|
||||||
|
}, 5000) // Задержка 3 секунды
|
||||||
|
|
||||||
|
return () => clearTimeout(timer)
|
||||||
|
}, [router])
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen relative overflow-hidden">
|
<div className="min-h-screen relative overflow-hidden">
|
||||||
{/* Background and particles */}
|
{/* Background and particles */}
|
||||||
@ -148,7 +162,7 @@ export default function Welcome() {
|
|||||||
strokeWidth={6}
|
strokeWidth={6}
|
||||||
strokeLinecap="round"
|
strokeLinecap="round"
|
||||||
className={`arm-limb ${animationPhase >= 2 ? 'limb-grow-active' : ''}`} /* Apply active class when phase 2 starts */
|
className={`arm-limb ${animationPhase >= 2 ? 'limb-grow-active' : ''}`} /* Apply active class when phase 2 starts */
|
||||||
style={{ '--length': '70' }}
|
|
||||||
/>
|
/>
|
||||||
</g>
|
</g>
|
||||||
{/* Правая рука (волнообразная вверх) - This arm will remain static after growth */}
|
{/* Правая рука (волнообразная вверх) - This arm will remain static after growth */}
|
||||||
@ -159,7 +173,7 @@ export default function Welcome() {
|
|||||||
strokeWidth={6}
|
strokeWidth={6}
|
||||||
strokeLinecap="round"
|
strokeLinecap="round"
|
||||||
className={`arm-limb ${animationPhase >= 2 ? 'limb-grow-active' : ''}`} /* Apply active class when phase 2 starts */
|
className={`arm-limb ${animationPhase >= 2 ? 'limb-grow-active' : ''}`} /* Apply active class when phase 2 starts */
|
||||||
style={{ '--length': '60' }}
|
|
||||||
/>
|
/>
|
||||||
{/* Левая нога - длиннее */}
|
{/* Левая нога - длиннее */}
|
||||||
<rect
|
<rect
|
||||||
|
Loading…
x
Reference in New Issue
Block a user