/* * @Author: ZhaoYing * @Date: 2026-02-03 18:34:23 * @Last Modified by: ZhaoYing * @Last Modified time: 2026-03-27 11:09:52 */ /** * About Me Component * Displays user summary, personality, and core values */ import { useEffect, useState, forwardRef, useImperativeHandle } from 'react' import { useTranslation } from 'react-i18next' import { useParams } from 'react-router-dom' import { Skeleton, Divider } from 'antd'; import clsx from 'clsx' import RbCard from '@/components/RbCard/Card' import Empty from '@/components/Empty'; import RbAlert from '@/components/RbAlert'; import { getUserSummary, } from '@/api/memory' import type { AboutMeRef } from '../types' /** * User summary data */ interface Data { user_summary: string; personality: string; core_values: string; one_sentence: string; [key: string]: string; } const AboutMe = forwardRef(({ className }, ref) => { const { t } = useTranslation() const { id } = useParams() const [loading, setLoading] = useState(false) const [data, setData] = useState({} as Data) useEffect(() => { if (!id) return getData() }, [id]) /** Fetch user summary data */ const getData = () => { if (!id) return setLoading(true) getUserSummary(id) .then((res) => { setData((res as Data) || null) }) .finally(() => { setLoading(false) }) } /** Expose methods to parent component */ useImperativeHandle(ref, () => ({ getData, })); return ( {loading ? : Object.keys(data).filter(key => data[key] !== null).length > 0 ?
{data.user_summary &&
{data.user_summary}
} {data.personality && <>
{t('userMemory.personality')}
{data.personality}
} {data.core_values && <>
{t('userMemory.core_values')}
{data.core_values}
} {data.one_sentence && {data.one_sentence} }
: }
) }) export default AboutMe