'use client'; import { FC, useCallback, useEffect, useMemo, useState, useTransition, } from 'react'; import { UtcToLocalDateRender } from '@gitroom/react/helpers/utc.date.render'; import { Button } from '@gitroom/react/form/button'; import dayjs from 'dayjs'; import Link from 'next/link'; import { useRouter, useSearchParams } from 'next/navigation'; import useSWR from 'swr'; import clsx from 'clsx'; import { useFetch } from '@gitroom/helpers/utils/custom.fetch'; import ReactLoading from '@gitroom/frontend/components/layout/loading'; import { useT } from '@gitroom/react/translation/get.transation.service.client'; export const UpDown: FC<{ name: string; param: string; }> = (props) => { const { name, param } = props; const router = useRouter(); const searchParams = useSearchParams(); const state = useMemo(() => { const newName = searchParams.get('key'); const newState = searchParams.get('state'); if (newName != param) { return 'none'; } return newState as 'asc' | 'desc'; }, [searchParams, name, param]); const changeStateUrl = useCallback( (newState: string) => { const query = newState === 'none' ? `` : `?key=${param}&state=${newState}`; router.replace(`/analytics${query}`); }, [state, param] ); const changeState = useCallback(() => { changeStateUrl( state === 'none' ? 'desc' : state === 'desc' ? 'asc' : 'none' ); }, [state, param]); return (
|
|
|
|
|
|
|
{t('media', 'Media')} |
|---|---|---|---|---|---|---|
| {p.login} |
|
{p.totalStars} | {p.totalForks} | {p.stars} | {p.forks} |