"use client"; import { AgeSelector } from "./AgeSelector"; import { AGE_EXAMPLES, calculateAgeFromArray, getAgeGroup, getGenerationFromArray, createAgeValue, createGenerationValue } from "@/lib/age-utils"; import { useState } from "react"; /** * Демо компонент для показа возможностей системы возраста */ export function AgeDemo() { const [selectedValues, setSelectedValues] = useState([]); const toggleValue = (value: string) => { setSelectedValues(prev => prev.includes(value) ? prev.filter(v => v !== value) : [...prev, value] ); }; const addCustomValue = (value: string) => { if (!selectedValues.includes(value)) { setSelectedValues(prev => [...prev, value]); } }; return (

🎂 Система работы с возрастом WitLab

Автоматический расчет возраста и поколений из даты рождения для системы вариативности

{/* 📖 ПРИМЕРЫ РАСЧЕТОВ */}

📖 Примеры автоматических расчетов:

{AGE_EXAMPLES.map((example, index) => (
{example.description}
{/* Исходная дата */}
Дата: [{example.input.join(', ')}] ({example.input[1]}.{example.input[0]}.{example.input[2]})
{/* Рассчитанные значения */}
Возраст: {example.age} лет
Группа: {example.ageGroup || 'Не определена'}
Поколение: {example.generation || 'Не определено'}
Значения: {[ createAgeValue(example.age), `age-${example.age}`, createGenerationValue(example.input[2]) ].join(', ')}
))}
{/* 🎯 ИНТЕРАКТИВНЫЙ СЕЛЕКТОР */}

🎯 Интерактивный селектор возраста:

{/* 💡 ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ */}

💡 Как использовать в условиях навигации:

Пример 1 - Возрастные группы:
{`{
  "conditions": [{
    "screenId": "birth-date",
    "conditionType": "values", 
    "operator": "includesAny",
    "values": ["22-25", "26-30"] // Молодые профессионалы
  }]
}`}
            
Пример 2 - Поколения:
{`{
  "conditions": [{
    "screenId": "birth-date",
    "conditionType": "values",
    "operator": "equals", 
    "values": ["millennials"] // Только миллениалы
  }]
}`}
            
Пример 3 - Комбинированные условия:
{`{
  "conditions": [
    {
      "screenId": "birth-date",
      "conditionType": "values",
      "operator": "includesAny",
      "values": ["aries", "leo", "sagittarius"] // Огненные знаки
    },
    {
      "screenId": "birth-date", 
      "conditionType": "values",
      "operator": "includesAny",
      "values": ["22-25", "26-30"] // Молодые взрослые
    }
  ]
}`}
            
{/* 🚀 ВОЗМОЖНОСТИ СИСТЕМЫ */}

🚀 Автоматические значения из даты рождения:

  • Точный возраст: age-25, age-30, age-45
  • Возрастные группы: 18-21, 22-25, 26-30, 31-35, 36-40, 41-45, 46-50, 51-60, 60+
  • Поколения: gen-z, millennials, gen-x, boomers, silent
  • Знаки зодиака: aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces
  • Кастомные диапазоны: 25-35, 40+, любые пользовательские значения
{/* 📋 ТЕХНИЧЕСКИЕ ДЕТАЛИ */}

📋 Как это работает технически:

  • 1. Пользователь вводит дату: [4, 8, 1987] в date экране
  • 2. Система рассчитывает: возраст = {calculateAgeFromArray([4, 8, 1987])} лет
  • 3. Определяет группу: {getAgeGroup(calculateAgeFromArray([4, 8, 1987]))?.name}
  • 4. Определяет поколение: {getGenerationFromArray([4, 8, 1987])?.name}
  • 5. Добавляет в ответы: все вычисленные значения автоматически
  • 6. Система навигации: использует эти значения для условий
); }