Skip to content

Commit

Permalink
Merge pull request #19 from s-katte/github-profile-preview
Browse files Browse the repository at this point in the history
GitHub profile preview
  • Loading branch information
mohammed786 committed Oct 20, 2020
2 parents d9098bf + 45fe248 commit 9c8f4bb
Show file tree
Hide file tree
Showing 3 changed files with 130 additions and 2 deletions.
122 changes: 122 additions & 0 deletions src/components/Profile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
import React, { useState, useEffect } from "react";

function Profile() {
const [person, setPerson] = useState({});
let profname = "mohammed786";
useEffect(() => {
fetch("https://api.github.com/users/" + profname)
.then((res) => res.json())
.then((temp) => {
setPerson(temp);
});
}, []);
return (
<div>
<div className="ui container">
<h2 className="ui header" style={{ paddingTop: 10 }}>
<img alt="avatar" src={person.avatar_url} />
<div className="content izzuhead">
<span id="profnam2">{profname}</span>
<div className="sub header izzuhead">
<span id="fullname">{person.name}</span>&nbsp;
<a
href={`https://github.com/${profname}`}
target="_blank"
id="proflink"
rel="noopener noreferrer"
>
<i className="share icon" />
</a>
</div>
</div>
</h2>
<hr />
<div className="ui relaxed divided list">
<div className="item">
<i className="large address card middle aligned icon" />
<div className="content">
<div className="header izzuhead" id="useriden">
{person.id}
</div>
<div className="description izzuhead">Identity</div>
</div>
</div>
<div className="item">
<i className="large building middle aligned icon" />
<div className="content">
<div className="header izzuhead" id="compname">
{person.company}
</div>
<div className="description izzuhead">Company</div>
</div>
</div>
<div className="item">
<i className="large compass middle aligned icon" />
<div className="content">
<div className="header izzuhead" id="bloglink">
{person.blog}
</div>
<div className="description izzuhead">Portfolio</div>
</div>
</div>
<div className="item">
<i className="large search middle aligned icon" />
<div className="content">
<div className="header izzuhead" id="location">
{person.location}
</div>
<div className="description izzuhead">Location</div>
</div>
</div>
<div className="item">
<i className="large clone outline middle aligned icon" />
<div className="content">
<div className="header izzuhead" id="publrepo">
{person.public_repos}
</div>
<div className="description izzuhead">Public repositories</div>
</div>
</div>
<div className="item">
<i className="large bell middle aligned icon" />
<div className="content">
<div className="header izzuhead" id="follhere">
{person.followers}
</div>
<div className="description izzuhead">Followers</div>
</div>
</div>
<div className="item">
<i className="large microphone middle aligned icon" />
<div className="content">
<div className="header izzuhead" id="follther">
{person.following}
</div>
<div className="description izzuhead">Following</div>
</div>
</div>
<div className="item">
<i className="large calendar outline middle aligned icon" />
<div className="content">
<div className="header izzuhead" id="modedate">
{person.updated_at}
</div>
<div className="description izzuhead">Last modified on</div>
</div>
</div>
<div className="item">
<i className="large plus circle middle aligned icon"></i>
<div className="content">
<div className="header izzuhead" id="makedate">
{person.created_at}
</div>
<div className="description izzuhead">Account created on</div>
</div>
</div>
</div>
</div>
</div>
);
}

export default Profile;
4 changes: 2 additions & 2 deletions src/containers/App/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ interface AppState {}

class App extends React.Component<AppProps, AppState> {
render() {

return (
<React.Fragment>
<Navigation
Expand All @@ -20,7 +19,8 @@ class App extends React.Component<AppProps, AppState> {
{ name: "Event", link: "/event" },
{ name: "Talk", link: "/talk" },
{ name: "Hackathon", link: "/hackathon" },
{ name: "Open Source", link: "/opensource" }
{ name: "Open Source", link: "/opensource" },
{ name: "Profile", link: "/profile" },
]}
/>
<Routes />
Expand Down
6 changes: 6 additions & 0 deletions src/routes/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { Redirect, Route, Switch } from "react-router-dom";
import PrivateRoute from "./PrivateRoute";
import Login from "../containers/Login";
import Logout from "../containers/Logout";
import Profile from "../components/Profile";

const Event = React.lazy(() => import("../containers/Event"));
const Hackathon = React.lazy(() => import("../containers/Hackathon"));
Expand Down Expand Up @@ -56,6 +57,11 @@ class Routes extends React.Component<RoutesProps, RoutesState> {
<OpenSource />
</React.Suspense>
</PrivateRoute>
<PrivateRoute exact path="/profile">
<React.Suspense fallback={fallback}>
<Profile />
</React.Suspense>
</PrivateRoute>

<Route exact path="/login" component={Login} />
<Route exact path="/logout" component={Logout} />
Expand Down

0 comments on commit 9c8f4bb

Please sign in to comment.