Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dApp commit history #38

Merged
merged 54 commits into from
Sep 10, 2024
Merged
Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
e4e0f1a
feat: add getProject function in project.ts
0xExp-po Sep 4, 2024
c39cd48
chore: add check project/select path function in set project page
0xExp-po Sep 4, 2024
80b8ab7
feat: add project info component commit page
0xExp-po Sep 4, 2024
600acac
refactor: update components file structure
0xExp-po Sep 4, 2024
e88e57c
feat: create modal component
0xExp-po Sep 4, 2024
0eed507
feat: add update config function
0xExp-po Sep 4, 2024
b4ca722
feat: add update config function in commit page
0xExp-po Sep 4, 2024
3c94b9e
chore: keep displaying connected wallet
0xExp-po Sep 4, 2024
6f472cd
Update dapp/src/components/ProjectInfo.astro
0xExp-po Sep 4, 2024
570f912
chore: update project link and remove console
0xExp-po Sep 4, 2024
3f7e912
Merge branch 'dapp-dev' of https://github.com/0xExp-po/soroban-versio…
0xExp-po Sep 4, 2024
3b05c21
Linter
tupui Sep 4, 2024
d599bef
chore: update project info component ui
0xExp-po Sep 5, 2024
23ad649
chore: update 'update config' button function
0xExp-po Sep 5, 2024
38309b6
chore: add theme props to loading component
0xExp-po Sep 5, 2024
78c9978
refactor: rename the file of project.ts and restruct
0xExp-po Sep 5, 2024
86283b9
chore: add commit history view in project info
0xExp-po Sep 5, 2024
812f952
Merge branch 'tupui:main' into dapp-dev
0xExp-po Sep 5, 2024
2340066
Merge branch 'dapp-dev' of https://github.com/0xExp-po/soroban-versio…
0xExp-po Sep 5, 2024
b3f26ac
style: set color theme as extend in tailwindconfig
0xExp-po Sep 5, 2024
b026f26
feat: create formatTime and Date function
0xExp-po Sep 5, 2024
a8a5153
feat: add commit history section
0xExp-po Sep 5, 2024
7d1b143
feat: create get commit function
0xExp-po Sep 5, 2024
2453634
chore: update github service
0xExp-po Sep 5, 2024
d482522
chore: update commit history table
0xExp-po Sep 5, 2024
6809121
chore: remove change project name function
0xExp-po Sep 6, 2024
4989e60
chore: highlight latest commit in history
0xExp-po Sep 6, 2024
a4c866b
chore: fix type script error
0xExp-po Sep 6, 2024
461eccd
chore: change scroll bar style
0xExp-po Sep 6, 2024
3731700
refactor: divide project service to state service
0xExp-po Sep 6, 2024
152fbbf
feat: create project repo info state variable
0xExp-po Sep 6, 2024
98cad04
feat: initialize state variables by local storage
0xExp-po Sep 6, 2024
2d7ab70
feat: divide project service to state service (2)
0xExp-po Sep 6, 2024
7e6b48c
chore: update ui of project info view
0xExp-po Sep 6, 2024
dda12e5
feat: fix bug wallet connection after set project
0xExp-po Sep 6, 2024
3069ad7
feat: create utils functions related get link
0xExp-po Sep 7, 2024
042a38f
chore: jump to latest commit
0xExp-po Sep 7, 2024
e27177d
chore: fix scroll bar error and jump delay time
0xExp-po Sep 9, 2024
f743a74
feat: add astro/react
0xExp-po Sep 9, 2024
4755873
feat: display real commit history
0xExp-po Sep 9, 2024
4c2010c
chore: delete commit history demo data
0xExp-po Sep 9, 2024
5dc8193
Merge branch 'tupui:main' into dapp-dev
0xExp-po Sep 9, 2024
2845f8f
chore: display update commit section only for maintainer
0xExp-po Sep 9, 2024
62ba7f0
Fix button handlers and re-registration, missing loadedProjectInfo an…
tupui Sep 9, 2024
91384c1
Merge branch 'dapp-dev' of https://github.com/0xExp-po/soroban-versio…
0xExp-po Sep 10, 2024
43ba04e
Fix button handlers, re-registration, missing loadedProjectInfo and h…
tupui Sep 9, 2024
e65bba2
Merge branch 'dapp-dev' of https://github.com/0xExp-po/soroban-versio…
0xExp-po Sep 10, 2024
323be3b
Fix buttons
tupui Sep 10, 2024
37f4293
fix:change registerProject function
0xExp-po Sep 10, 2024
8da7530
chore: create package-lock
0xExp-po Sep 10, 2024
ff704dd
Merge from origin/dapp-dev
0xExp-po Sep 10, 2024
deb7f0e
chore: change loadedProjectInfo name to loadProjectInfo
0xExp-po Sep 10, 2024
d35d037
fix: load project latestsha function invoking
0xExp-po Sep 10, 2024
e736ac1
Merge branch 'tupui:main' into dapp-dev
0xExp-po Sep 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dapp/src/components/Commit.astro
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ import Loading from "./utils/Loading.astro";
</div>

<script>
import { commitHash } from "./project";
import { commitHash } from "../service/ProjectService";

document.addEventListener("astro:page-load", () => {
const commit_hash = document.getElementById(
Expand Down
41 changes: 41 additions & 0 deletions dapp/src/components/CommitHistory.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
import { getCommitHistory } from '../service/GithubService';
import CommitRecord from './CommitRecord.astro';
import { formatDate } from '../service/utils';
import type { FormattedCommit } from '../types/github';

const commitHistory = await getCommitHistory('tupui', 'soroban-versioning');
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure I understand why this is set to 'tupui', 'soroban-versioning'. We want to fetch the history of the project people would select, not of tupui/soroban-versioning. This is missing a props or something else so that it points to the GitHub of the selected project (url in the config like in the Project info section).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, you're right
that's why I said I used demo data
I've developed function to get dynamic info user selects and testing now
after test, I'll push it too

---

<div class="commit-history-container space-y-4 relative pl-8 before:content-[''] before:absolute before:left-[0.5rem] before:top-0 before:bottom-0 before:w-0.5 before:bg-zinc-700">
{commitHistory && commitHistory.length > 0 && commitHistory.map((day: { date: string; commits: FormattedCommit[] }) => (
<div class="day-group relative">
<h3 class="text-lg font-semibold pb-4 relative">
<div class="commit-dot absolute left-[-2.2rem] top-0 w-[25px] h-[25px] bg-[#f3f3f3] rounded-full before:content-[''] before:absolute before:left-[50%] before:top-[50%] before:transform before:-translate-x-1/2 before:-translate-y-1/2 before:w-[15px] before:h-[15px] before:border-[2px] before:rounded-full"></div>
<span class="pr-2 relative z-10">{formatDate(day.date)}</span>
</h3>
<div class="space-y-4 relative">
{day.commits.map((commit: FormattedCommit) => (
<div class="relative">
<div class="absolute left-[-1.25rem] top-1/2 w-2 h-2 rounded-full transform -translate-y-1/2"></div>
<CommitRecord
message={commit.message}
date={commit.commit_date}
authorName={commit.author.name}
authorGithubLink={commit.author.html_url}
sha={commit.sha}
commitLink={commit.html_url}
/>
</div>
))}
</div>
</div>
))}
</div>

<style>
.commit-history-container {
max-width: 900px;
margin: 0 auto;
}
</style>
120 changes: 120 additions & 0 deletions dapp/src/components/CommitRecord.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
---
interface Props {
message: string;
date: string;
authorName: string;
authorGithubLink: string;
sha: string;
commitLink: string;
}

const { message, date, authorName, authorGithubLink, sha, commitLink } = Astro.props;

import { formatTime } from '../service/utils';

const formattedMessage = message.split(/\r?\n/).map((line: string) => line.trim()).filter(Boolean);
const firstLine = formattedMessage[0];
const hasMoreLines = formattedMessage.length > 1;
---

<div class="commit-record relative bg-white p-4 rounded-lg border border-gray-200 shadow-sm flex justify-between items-start" data-sha={sha}>
<div class="commit-info flex-grow overflow-hidden mr-4">
<div class="flex items-center">
<a href={commitLink} target="_blank" rel="noopener noreferrer" class="commit-message text-lg font-medium hover:underline hover:text-blue-500 truncate">{firstLine}</a>
{hasMoreLines && (
<button class="expand-button ml-2 text-xs bg-zinc-200 hover:bg-zinc-300 text-gray-700 font-semibold py-1 px-2 rounded-md transition-colors duration-200 flex-shrink-0">
. . .
</button>
)}
</div>
{hasMoreLines && (
<div class="expanded-message hidden mt-2 text-sm text-gray-700 whitespace-pre-wrap">{formattedMessage.slice(1).join('\n')}</div>
)}
<div class="commit-details text-sm text-gray-600 mt-1">
<a href={authorGithubLink} target="_blank" rel="noopener noreferrer" class="author-name font-semibold hover:underline hover:text-blue-500">{authorName}</a>
<span class="mx-1">committed on</span>
<span class="commit-date">{formatTime(date)}</span>
</div>
</div>
<div class="commit-sha flex items-center space-x-2 flex-shrink-0">
<a href={commitLink} target="_blank" rel="noopener noreferrer" class="sha text-sm font-mono text-gray-500 hover:bg-zinc-400 transition-colors duration-200 px-2 py-1 rounded">{sha.substring(0, 7)}</a>
<button class="copy-button hover:bg-zinc-400 transition-colors duration-200 p-1 rounded" data-sha={sha}>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-5 h-5 text-gray-400 hover:text-gray-600">
<path stroke-linecap="round" stroke-linejoin="round" d="M15.666 3.888A2.25 2.25 0 0013.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 01-.75.75H9a.75.75 0 01-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 01-2.25 2.25H6.75A2.25 2.25 0 014.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 011.927-.184" />
</svg>
</button>
</div>
</div>

<script>
import { getProjectHash } from '../service/ProjectService';

function setupCopyButton(button: HTMLButtonElement) {
button.addEventListener('click', async () => {
const sha = button.getAttribute('data-sha');
if (sha) {
try {
await navigator.clipboard.writeText(sha);
const svg = button.querySelector('svg');
if (svg) {
svg.classList.remove('text-gray-400', 'hover:text-gray-600');
svg.classList.add('text-green-500');
svg.innerHTML = `
<path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5" />
`;
}
setTimeout(() => {
if (svg) {
svg.classList.remove('text-green-500');
svg.classList.add('text-gray-400', 'hover:text-gray-600');
svg.innerHTML = `
<path stroke-linecap="round" stroke-linejoin="round" d="M15.666 3.888A2.25 2.25 0 0013.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 01-.75.75H9a.75.75 0 01-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 01-2.25 2.25H6.75A2.25 2.25 0 014.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 011.927-.184" />
`;
}
}, 2000);
} catch (err) {
console.error('Failed to copy: ', err);
}
}
});
}

function setupExpandButtons() {
const expandButtons = document.querySelectorAll('.expand-button');
expandButtons.forEach(button => {
button.addEventListener('click', () => {
const record = button.closest('.commit-record');
const expandedMessage = record?.querySelector('.expanded-message');
if (expandedMessage) {
expandedMessage.classList.toggle('hidden');
button.textContent = expandedMessage.classList.contains('hidden') ? '. . .' : 'Less';
}
});
});
}

async function highlightLatestCommit() {
const latestSha = await getProjectHash();
if (latestSha) {
const commitRecords = document.querySelectorAll('.commit-record');
commitRecords.forEach((record) => {
const recordSha = record.getAttribute('data-sha');
if (recordSha === latestSha) {
record.classList.add('border-2', 'border-blue-300', 'bg-zinc-300');
const indicator = document.createElement('div');
indicator.className = 'absolute top-0.5 left-1 text-xs font-bold tracking-tighter leading-3 bg-lime rounded-sm p-0.5';
indicator.textContent = 'latest commit';
record.insertBefore(indicator, record.firstChild);
}
});
}
}

document.addEventListener('astro:page-load', () => {
highlightLatestCommit();
const copyButtons = document.querySelectorAll('.copy-button');
copyButtons.forEach(button => setupCopyButton(button as HTMLButtonElement));
setupExpandButtons();
});
</script>

4 changes: 3 additions & 1 deletion dapp/src/components/ConnectWallet.astro
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,15 @@

try {
await kit.openModal({
onWalletSelected: async (option) => {
onWalletSelected: async (option: { id: string }) => {
try {
kit.setWallet(option.id);
const { address } = await kit.getAddress();
setPublicKey(address);
await setLoggedIn(address);
button.disabled = false;

window.dispatchEvent(new CustomEvent('walletConnected', { detail: address }));
} catch (e) {
console.error(e);
}
Expand Down
2 changes: 1 addition & 1 deletion dapp/src/components/GetCommit.astro
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import Loading from "./utils/Loading.astro";
</div>

<script>
import { getProjectHash } from "./project";
import { getProjectHash } from "../service/ProjectService";

document.addEventListener("astro:page-load", () => {
const wrap_loader = document.getElementById(
Expand Down
100 changes: 85 additions & 15 deletions dapp/src/components/ProjectInfo.astro
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import Topic from "./utils/Topic.astro";
import Modal from "./utils/Modal.astro";
import Loading from "./utils/Loading.astro";
import CommitHistory from "./CommitHistory.astro";
---

<div class="relative flex flex-col items-center md:flex-row justify-between">
Expand All @@ -22,23 +23,35 @@ import Loading from "./utils/Loading.astro";
<div
class="relative flex flex-col items-center md:flex-row my-6 bg-zinc-100 rounded-[45px]"
>
<div class="row items-center py-12 px-4 md:px-20 md:w-8/12 md:py-10">
<div class="row items-center py-12 px-4 md:px-20 w-full md:py-10">
<div class="space-y-6 md:w-full">
<div id="project-name" class="flex items-center space-x-2">
<h3 class="text-lg font-semibold">Project Name:</h3>
<p id="project-name-value" class="text-3xl font-bold"></p>
</div>
<div id="project-maintainers" class="space-y-2">
<h3 class="text-lg font-semibold">Maintainers:</h3>
<ul class="list-disc list-inside"></ul>
<ul class="list-disc list-outside pl-4"></ul>
</div>
<div id="project-link" class="flex items-center space-x-2">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M12.586 4.586a2 2 0 112.828 2.828l-3 3a2 2 0 01-2.828 0 1 1 0 00-1.414 1.414 4 4 0 005.656 0l3-3a4 4 0 00-5.656-5.656l-1.5 1.5a1 1 0 101.414 1.414l1.5-1.5zm-5 5a2 2 0 012.828 0 1 1 0 101.414-1.414 4 4 0 00-5.656 0l-3 3a4 4 0 105.656 5.656l1.5-1.5a1 1 0 10-1.414-1.414l-1.5 1.5a2 2 0 11-2.828-2.828l3-3z" clip-rule="evenodd" />
</svg>
<a href="#" id="github-link" class="text-blue-600 hover:underline" target="_blank" rel="noopener noreferrer">Link to GitHub</a>
<div class="flex items-center space-x-4">
<div id="project-link" class="flex items-center space-x-2">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M12.586 4.586a2 2 0 112.828 2.828l-3 3a2 2 0 01-2.828 0 1 1 0 00-1.414 1.414 4 4 0 005.656 0l3-3a4 4 0 00-5.656-5.656l-1.5 1.5a1 1 0 101.414 1.414l1.5-1.5zm-5 5a2 2 0 012.828 0 1 1 0 101.414-1.414 4 4 0 00-5.656 0l-3 3a4 4 0 105.656 5.656l1.5-1.5a1 1 0 10-1.414-1.414l-1.5 1.5a2 2 0 11-2.828-2.828l3-3z" clip-rule="evenodd" />
</svg>
<a href="#" id="github-link" class="text-blue-600 hover:underline" target="_blank" rel="noopener noreferrer">Link to GitHub</a>
</div>
<div id="view-commit-history" class="flex items-center space-x-2 cursor-pointer hover:bg-zinc-300 transition-colors duration-300 rounded-lg px-2 py-1">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
<path id="commit-icon-up" fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-11a1 1 0 10-2 0v3.586L7.707 9.293a1 1 0 00-1.414 1.414l3 3a1 1 0 001.414 0l3-3a1 1 0 00-1.414-1.414L11 10.586V7z" clip-rule="evenodd" />
<path id="commit-icon-down" class="hidden" fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-8.707l-3-3a1 1 0 00-1.414 0l-3 3a1 1 0 001.414 1.414L9 9.414V13a1 1 0 102 0V9.414l1.293 1.293a1 1 0 001.414-1.414z" clip-rule="evenodd" />
</svg>
<span id="view-commit-text">View Commit History</span>
</div>
</div>
</div>
<div id="commit-history-container" class="mt-4 overflow-hidden transition-all duration-300 max-h-0">
<CommitHistory/>
</div>
</div>
</div>

Expand Down Expand Up @@ -98,21 +111,17 @@ import Loading from "./utils/Loading.astro";
</Modal>

<script>
import { getProject, loadedProjectInfo, setProject, updateConfig } from "./project";
import { getProject, updateConfig } from "../service/ProjectService";
import { initializeProjectState, loadedProjectInfo, setProject } from "../service/StateService";
import { loadedPublicKey } from "./stellar-wallets-kit";

document.addEventListener("astro:page-load", () => {
const topicElement = document.getElementById("project-name-topic");
const topicDescriptionElement = topicElement?.querySelector("p");
initializeProjectState();
const modal = document.getElementById("update-config-modal") as HTMLDialogElement;

function updateProjectInfo() {
const projectInfo = loadedProjectInfo();
if (projectInfo) {
console.log("projectInfo:", projectInfo);
if (topicDescriptionElement) {
topicDescriptionElement.textContent = projectInfo.name;
}
const projectNameElement = document.getElementById("project-name-value");
if (projectNameElement) {
projectNameElement.textContent = projectInfo.name;
Expand All @@ -124,7 +133,27 @@ import Loading from "./utils/Loading.astro";
ul.innerHTML = '';
projectInfo.maintainers.forEach((maintainer: string) => {
const li = document.createElement("li");
li.textContent = maintainer;
li.className = "relative";

const content = document.createElement("p");
content.className = "truncate";
content.textContent = maintainer;

li.appendChild(content);

const popup = document.createElement("p");
popup.className = "absolute left-0 bottom-full mb-1 bg-black text-white text-xs p-1 rounded hidden before:content-[''] before:absolute before:left-1/2 before:top-full before:-translate-x-1/2 before:border-4 before:border-transparent before:border-t-black";
popup.textContent = maintainer;
li.appendChild(popup);

li.addEventListener("mouseenter", () => {
popup.classList.remove("hidden");
});

li.addEventListener("mouseleave", () => {
popup.classList.add("hidden");
});

ul.appendChild(li);
});
}
Expand Down Expand Up @@ -210,5 +239,46 @@ import Loading from "./utils/Loading.astro";
}
});
}

const viewCommitHistory = document.getElementById("view-commit-history");
const viewCommitText = document.getElementById("view-commit-text");
const commitHistoryContainer = document.getElementById("commit-history-container");
const commitIconUp = document.getElementById("commit-icon-up");
const commitIconDown = document.getElementById("commit-icon-down");

if (viewCommitHistory && viewCommitText && commitHistoryContainer && commitIconUp && commitIconDown) {
viewCommitHistory.addEventListener("click", () => {
if (commitHistoryContainer.style.maxHeight === "0px" || !commitHistoryContainer.style.maxHeight) {
commitHistoryContainer.style.maxHeight = `${commitHistoryContainer.scrollHeight}px`;
} else {
commitHistoryContainer.style.maxHeight = "0px";
}
});

commitHistoryContainer.addEventListener("transitionend", () => {
if (commitHistoryContainer.style.maxHeight === "0px") {
viewCommitText.textContent = "View Commit History";
commitIconUp.classList.remove("hidden");
commitIconDown.classList.add("hidden");
} else {
viewCommitText.textContent = "Hide Commit History";
commitIconUp.classList.add("hidden");
commitIconDown.classList.remove("hidden");
}
});
}

window.addEventListener('walletConnected', (_event: Event) => {
const projectInfo = loadedProjectInfo();

if (projectInfo) {
const connectedPublicKey = loadedPublicKey();
const isMaintainer = connectedPublicKey ? projectInfo.maintainers.includes(connectedPublicKey) : false;
const updateConfigButton = document.getElementById("open-update-config-modal-button");
if (updateConfigButton) {
updateConfigButton.classList.toggle("hidden", !isMaintainer);
}
}
});
});
</script>
2 changes: 1 addition & 1 deletion dapp/src/components/RegisterProject.astro
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ import Loading from "./utils/Loading.astro";
</div>

<script>
import { registerProject } from "./project";
import { registerProject } from "../service/ProjectService";
import { navigate } from "astro:transitions/client";
const SOROBAN_DOMAIN_CONTRACT_ID = `${import.meta.env.PUBLIC_SOROBAN_DOMAIN_CONTRACT_ID}`;

Expand Down
8 changes: 7 additions & 1 deletion dapp/src/components/SetProject.astro
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,10 @@ const TANSU_CONTRACT_ID = import.meta.env.PUBLIC_TANSU_CONTRACT_ID;
</div>

<script>
import { getProject, setProjectId, setProject } from "./project";
import { getProject } from "../service/ProjectService";
import { setProjectId, setProject, setProjectRepoInfo } from "../service/StateService";
import { navigate } from "astro:transitions/client";
import { getAuthorRepo } from "../service/utils";

document.addEventListener("astro:page-load", () => {
const project_name = document.getElementById(
Expand All @@ -61,6 +63,10 @@ const TANSU_CONTRACT_ID = import.meta.env.PUBLIC_TANSU_CONTRACT_ID;
const project = await getProject();
if (project && project.name && project.config && project.maintainers) {
setProject(project);
const { username, repoName } = getAuthorRepo(project.config.url);
if (username && repoName) {
setProjectRepoInfo(username, repoName);
}
navigate("/commit");
} else {
navigate("/register")
Expand Down
Loading
Loading