@@ -10,8 +10,6 @@ import PublicTabs from "../../components/dashboard/publicTabs";
1010import UserHeader from "../../components/user/header" ;
1111import AccountOverview from "../../components/account/overview" ;
1212import { useErrorStatus } from "../../hooks/errorHandler" ;
13- import getUserAll from "../../helpers/getUserAll" ;
14- import getDaoAll from "../../helpers/getDaoAll" ;
1513import getWhois from "../../helpers/getWhois" ;
1614import AccountRepositories from "../../components/account/repositories" ;
1715import AccountTransactions from "../../components/account/transactions" ;
@@ -21,55 +19,38 @@ import DaoProposalList from "../../components/account/daoProposalList";
2119import DaoProposalCreate from "../../components/account/daoProposalCreate" ;
2220import DaoProposalDetails from "../../components/account/daoProposalDetails" ;
2321import validAddress from "../../helpers/validAddress" ;
24-
25- const getAllRepos = async ( repoIds ) => {
26- if ( repoIds ) {
27- const pr = repoIds . map ( ( r ) => getRepository ( r . id ) ) ;
28- return await Promise . all ( pr ) ;
29- }
30- return [ ] ;
31- } ;
32-
33- const getOrgAvatarLink = ( org ) => {
34- if ( org ?. name ) {
35- let letter = org . name . slice ( 0 , 1 ) ;
36- const link =
37- process . env . NEXT_PUBLIC_GITOPIA_ADDRESS === org . address
38- ? "/logo-g.svg"
39- : "https://avatar.oxro.io/avatar.svg?length=1&height=100&width=100&fontSize=52&caps=1&name=" +
40- letter ;
41- return link ;
42- }
43- return "" ;
44- } ;
22+ import getAnyRepositoryAll from "../../helpers/getAnyRepositoryAll" ;
23+ import sortBy from "lodash/sortBy" ;
4524
4625export async function getStaticProps ( { params } ) {
47- const [ u , o ] = await Promise . all ( [
48- getUser ( params . userId ) ,
49- getDao ( params . userId ) ,
50- ] ) ;
51- const orgAvatarLink = getOrgAvatarLink ( o ) ;
52- let allRepos = [ ] ;
53- if ( u && u . id ) {
54- allRepos = await getAllRepos ( u . repositories ) ;
55- } else if ( o && o . id ) {
56- allRepos = await getAllRepos ( o . repositories ) ;
26+ const data = await getWhois ( params . userId ) ;
27+ let u ,
28+ d ,
29+ allRepos = [ ] ;
30+ if ( data ?. ownerType === "USER" ) {
31+ u = await getUser ( params . userId ) ;
32+ const pr = await getAnyRepositoryAll ( params . userId ) ;
33+ allRepos = sortBy ( pr , ( r ) => - Number ( r . updatedAt ) ) ;
34+ } else if ( data ?. ownerType === "DAO" ) {
35+ d = await getDao ( params . userId ) ;
36+ const pr = await getAnyRepositoryAll ( params . userId ) ;
37+ allRepos = sortBy ( pr , ( r ) => - Number ( r . updatedAt ) ) ;
5738 }
39+
5840 return {
59- props : { user : u || { } , org : o || { } , orgAvatarLink , allRepos } ,
41+ props : { user : u || { } , dao : d || { } , allRepos } ,
6042 revalidate : 1 ,
6143 } ;
6244}
6345
6446export async function getStaticPaths ( ) {
65- const [ users , orgs ] = await Promise . all ( [ getUserAll ( ) , getDaoAll ( ) ] ) ;
47+ const fs = ( await import ( "fs" ) ) . default ;
6648 let paths = [ ] ;
67- users ?. map ( ( u ) => {
68- paths . push ( { params : { userId : u . creator } } ) ;
69- } ) ;
70- orgs ?. map ( ( o ) => {
71- paths . push ( { params : { userId : o . address } } ) ;
72- } ) ;
49+ try {
50+ paths = JSON . parse ( fs . readFileSync ( "./seo/paths-owners.json" ) ) ;
51+ } catch ( e ) {
52+ console . error ( e ) ;
53+ }
7354 return {
7455 paths,
7556 fallback : "blocking" ,
@@ -87,37 +68,8 @@ function AccountView(props) {
8768 const [ dao , setDao ] = useState ( {
8869 name : "" ,
8970 repositories : [ ] ,
90- ...props . org ,
71+ ...props . dao ,
9172 } ) ;
92- // const [allRepos, setAllRepos] = useState(props.allRepos);
93- // const [avatarLink, setAvatarLink] = useState(props.orgAvatarLink);
94-
95- useEffect ( async ( ) => {
96- const [ u , o ] = await Promise . all ( [
97- getUser ( router . query . userId ) ,
98- getDao ( router . query . userId ) ,
99- ] ) ;
100- if ( u ) {
101- setUser ( u ) ;
102- setDao ( { name : "" , repositories : [ ] } ) ;
103- } else if ( o ) {
104- setDao ( o ) ;
105- setUser ( { creator : "" , repositories : [ ] } ) ;
106- } else {
107- setErrorStatusCode ( 404 ) ;
108- setUser ( { creator : "" , repositories : [ ] } ) ;
109- setDao ( { name : "" , repositories : [ ] } ) ;
110- }
111- } , [ router . query ] ) ;
112-
113- // useEffect(async () => {
114- // setAvatarLink(getOrgAvatarLink(org));
115- // if (user && user.id) {
116- // setAllRepos(await getAllRepos(user.repositories));
117- // } else if (org && org.id) {
118- // setAllRepos(await getAllRepos(org.repositories));
119- // }
120- // }, [user.id, org.id]);
12173
12274 const hrefBase = "/" + router . query . userId ;
12375
@@ -167,7 +119,7 @@ function AccountView(props) {
167119
168120 useEffect ( ( ) => {
169121 getId ( ) ;
170- } , [ router . query ] ) ;
122+ } , [ router . query . userId ] ) ;
171123
172124 return (
173125 < div
@@ -204,6 +156,7 @@ function AccountView(props) {
204156 user = { user }
205157 dao = { dao }
206158 userId = { router . query . userId }
159+ allRepos = { props . allRepos }
207160 />
208161 ) : (
209162 ""
@@ -213,6 +166,7 @@ function AccountView(props) {
213166 user = { user }
214167 dao = { dao }
215168 userId = { router . query . userId }
169+ allRepos = { props . allRepos }
216170 />
217171 ) : (
218172 ""
0 commit comments