/[sudobot]/trunk/docs/components/MDX/PageInfo.tsx
ViewVC logotype

Diff of /trunk/docs/components/MDX/PageInfo.tsx

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 625 by rakinar2, Mon Jul 29 17:59:26 2024 UTC revision 626 by rakinar2, Sat Sep 7 09:38:45 2024 UTC
# Line 2  Line 2 
2    
3  import { getPageInfo } from "@/actions/pageinfo";  import { getPageInfo } from "@/actions/pageinfo";
4  import useActualPathname from "@/hooks/useActualPathname";  import useActualPathname from "@/hooks/useActualPathname";
5    import { branch, GITHUB_REPO_URL } from "@/utils/links";
6    import { Button } from "@mui/material";
7    import { Tooltip } from "@nextui-org/react";
8  import { formatDistanceToNowStrict } from "date-fns";  import { formatDistanceToNowStrict } from "date-fns";
9  import { useEffect, useState } from "react";  import { useEffect, useState } from "react";
10    import { MdEdit } from "react-icons/md";
11    
12  export default function LastModified() {  export default function LastModified() {
13      const [date, setDate] = useState<Date | null>(null);      const [date, setDate] = useState<Date | null>(null);
14      const [avatar, setAvatar] = useState<string | null>(null);      const [avatar, setAvatar] = useState<string | null>(null);
15        const [editURL, setEditURL] = useState<string | null>(null);
16        const [username, setUsername] = useState<string | null>(null);
17      const pathname = useActualPathname();      const pathname = useActualPathname();
18    
19      useEffect(() => {      useEffect(() => {
20          getPageInfo(pathname)          getPageInfo(pathname)
21              .then(({ avatarURL, lastModifiedDate }) => {              .then(
22                  setDate(lastModifiedDate);                  ({ avatarURL, lastModifiedDate, urlEncodedPath, username }) => {
23                  setAvatar(avatarURL);                      setDate(lastModifiedDate);
24              })                      setAvatar(avatarURL);
25                        setEditURL(urlEncodedPath);
26                        setUsername(username);
27                    },
28                )
29              .catch(console.error);              .catch(console.error);
30      }, [pathname]);      }, [pathname]);
31    
# Line 24  export default function LastModified() { Line 34  export default function LastModified() {
34      }      }
35    
36      return (      return (
37          <div className="flex items-center gap-3">          <div className="flex flex-col lg:flex-row gap-5 lg:gap-0 justify-between items-center">
38              {avatar ? (              <div className="flex items-center gap-3">
39                  <img                  {avatar ? (
40                      src={avatar}                      <Tooltip content={username ?? "Unknown"}>
41                      className="w-[30px] h-[30px] rounded-full [border:1px_solid_#007bff]"                          <img
42                  />                              src={avatar}
43              ) : (                              className="w-[30px] h-[30px] rounded-full [border:1px_solid_#007bff]"
44                  <div className="w-[30px] h-[30px] rounded-full [border:1px_solid_#007bff] bg-[rgba(0,123,255,0.3)]"></div>                          />
45              )}                      </Tooltip>
46                    ) : (
47              <span className="text-[#999]">                      <div className="w-[30px] h-[30px] rounded-full [border:1px_solid_#007bff] bg-[rgba(0,123,255,0.3)]"></div>
48                  Last modified{" "}                  )}
49                  {formatDistanceToNowStrict(date, {  
50                      addSuffix: true,                  <span className="text-[#999]">
51                  })}                      Last modified{" "}
52              </span>                      {formatDistanceToNowStrict(date, {
53                            addSuffix: true,
54                        })}
55                    </span>
56                </div>
57    
58                <div>
59                    <Button
60                        href={`${GITHUB_REPO_URL}/edit/${encodeURIComponent(
61                            branch,
62                        )}/${editURL ?? ""}`}
63                        target="_blank"
64                        rel="noreferrer"
65                        startIcon={<MdEdit size={16} />}
66                        className="-mt-1"
67                    >
68                        Edit this page
69                    </Button>
70                </div>
71          </div>          </div>
72      );      );
73  }  }

Legend:
Removed from v.625  
changed lines
  Added in v.626

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26