Skip to content

Update the fork and merge workflow, and show storage info #157

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

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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: 0 additions & 2 deletions .env.development
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,13 @@ NEXT_PUBLIC_FAUCET_URL=http://$BASE_ADDRESS:4500
NEXT_PUBLIC_IMAGES_URL=http://$BASE_ADDRESS:3000
NEXT_PUBLIC_CURRENCY_TOKEN=lore
NEXT_PUBLIC_ADVANCE_CURRENCY_TOKEN=ulore
NEXT_PUBLIC_OBJECTS_URL=http://$BASE_ADDRESS:5001
NEXT_PUBLIC_EXPLORER_URL=http://explorer.$BASE_ADDRESS
NEXT_PUBLIC_DOCS_URL=http://docs.$BASE_ADDRESS
NEXT_PUBLIC_FORUM_URL=http://forum.$BASE_ADDRESS
NEXT_PUBLIC_HEADER_MESSAGE=
NEXT_PUBLIC_GITOPIA_ADDRESS=
NEXT_PUBLIC_NETWORK_RELEASE_NOTES=
NEXT_PUBLIC_GAS_PRICE=0.001ulore
NEXT_PUBLIC_GIT_SERVER_WALLET_ADDRESS=gitopia1jnq4pk0ene8xne4a43p2a2xpdhf3jqgsgu04n9
NEXT_PUBLIC_PLAUSIBLE_DOMAIN=$BASE_ADDRESS
NEXT_PUBLIC_GRAPHQL_HTTP_URL=http://localhost:8000/subgraphs/name/gitopia/feed-alpha
NEXT_PUBLIC_SERVER_URL=http://$BASE_ADDRESS:3000
Expand Down
2 changes: 0 additions & 2 deletions .env.production
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ NEXT_PUBLIC_FAUCET_URL=https://faucet.$BASE_ADDRESS
NEXT_PUBLIC_IMAGES_URL=https://$BASE_ADDRESS
NEXT_PUBLIC_CURRENCY_TOKEN=lore
NEXT_PUBLIC_ADVANCE_CURRENCY_TOKEN=ulore
NEXT_PUBLIC_OBJECTS_URL=https://server.$BASE_ADDRESS
NEXT_PUBLIC_EXPLORER_URL=https://explorer.$BASE_ADDRESS
NEXT_PUBLIC_DOCS_URL=https://docs.$BASE_ADDRESS
NEXT_PUBLIC_FORUM_URL=https://forum.$BASE_ADDRESS
Expand All @@ -19,7 +18,6 @@ NEXT_PUBLIC_GITOPIA_ADDRESS=
NEXT_PUBLIC_NETWORK_RELEASE_NOTES=https://forum.$BASE_ADDRESS
NEXT_PUBLIC_GAS_PRICE=0.001ulore
NEXT_PUBLIC_PLAUSIBLE_DOMAIN=$BASE_ADDRESS
NEXT_PUBLIC_GIT_SERVER_WALLET_ADDRESS=
NEXT_PUBLIC_GRAPHQL_HTTP_URL=
NEXT_PUBLIC_SERVER_URL=https://$BASE_ADDRESS
NEXT_PUBLIC_STORAGE_BRIDGE_WALLET_ADDRESS=
Expand Down
17 changes: 0 additions & 17 deletions components/account/grants.js

This file was deleted.

8 changes: 0 additions & 8 deletions components/dashboard/dao.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import Link from "next/link";
import { connect, useDispatch } from "react-redux";
import DAOMembersList from "./DAOMembersList";
import { createGroupProposal } from "../../store/actions/dao";
import AccountGrants from "../account/grants";
import GreetDao from "../greetDao";
import { useApiClient } from "../../context/ApiClientContext";
import getGroupInfo from "../../helpers/getGroupInfo";
Expand Down Expand Up @@ -373,13 +372,6 @@ function DaoDashboard({ dao = {}, advanceUser, ...props }) {
onRefreshProposals={fetchProposals}
/>
);
case "authorizations":
return (
<div className="bg-base-200 p-4 rounded-lg">
<h3 className="text-xl font-semibold mb-4">Authorizations</h3>
<AccountGrants address={dao.address} />
</div>
);
default:
return null;
}
Expand Down
5 changes: 4 additions & 1 deletion components/header.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ function Header(props) {
apiClient,
cosmosBankApiClient,
cosmosFeegrantApiClient,
storageApiClient,
updateApiClient,
updateStorageProvider,
} = useApiClient();
const [selectedProvider, setSelectedProvider] = useState({
name: providerName,
Expand Down Expand Up @@ -109,6 +111,7 @@ function Header(props) {
const provider = await selectProvider();
setSelectedProvider(provider);
updateApiClient(provider.name, provider.apiEndpoint, provider.rpcEndpoint);
updateStorageProvider(storageApiClient);
props.notify("API provider reset successful", "info");
};

Expand Down Expand Up @@ -505,7 +508,7 @@ function Header(props) {
{props.activeWallet.name}
</span>
{props.activeWallet.isLedger ||
props.activeWallet.isKeplr ? (
props.activeWallet.isKeplr ? (
<span
className={
"ml-1 border rounded-md pl-1.5 pr-2 py-px relative -top-px " +
Expand Down
150 changes: 93 additions & 57 deletions components/providers.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ import providers from "../providers.json";
import { useApiClient } from "../context/ApiClientContext";
import { notify } from "reapop";
import { connect } from "react-redux";
import { CircleStackIcon, GlobeAltIcon } from '@heroicons/react/24/outline';

const Providers = ({ selectedProvider, setSelectedProvider, notify }) => {
const { updateApiClient } = useApiClient();
const { updateApiClient, allStorageProviders, setActiveStorageProvider, storageProviderName } = useApiClient();
const [activeTab, setActiveTab] = useState("api");
const [customProvider, setCustomProvider] = useState({
name: "Custom",
apiEndpoint: "",
Expand Down Expand Up @@ -86,66 +88,100 @@ const Providers = ({ selectedProvider, setSelectedProvider, notify }) => {
};

return (
<div className="flex flex-col p-4">
<div className="text-sm font-semibold mb-2">API Provider</div>
{providersWithCustom.map((provider, i) => (
<button
key={i}
onClick={() => chooseProvider(provider)}
className={`btn rounded-full px-4 mb-2 relative justify-start ${
selectedProvider &&
selectedProvider.apiEndpoint === provider.apiEndpoint
? "btn-primary"
: "btn-ghost"
}`}
>
<div className="ml-2 mr-2">
<div className="text-xs text-left whitespace-nowrap">
{provider.name}
{selectedProvider &&
selectedProvider.apiEndpoint === provider.apiEndpoint && (
<span className="ml-2 h-2 w-2 rounded-full bg-green-500 inline-block"></span>
)}
</div>
</div>
</button>
))}
<button
onClick={toggleCustomProviderInputs}
className="btn btn-sm btn-block bg-white text-black"
>
Set Custom Provider
</button>
{showCustomProviderInputs && (
<div className="mt-4">
<div className="text-sm font-semibold mb-2">Custom Provider</div>
<input
type="text"
placeholder="https://api.gitopia.com"
value={customProvider.apiEndpoint}
onChange={(e) =>
handleCustomProviderChange("apiEndpoint", e.target.value)
}
className="input input-bordered w-full mb-2"
/>
<input
type="text"
placeholder="https://rpc.gitopia.com"
value={customProvider.rpcEndpoint}
onChange={(e) =>
handleCustomProviderChange("rpcEndpoint", e.target.value)
}
className="input input-bordered w-full mb-2"
/>
{validationError && (
<div className="text-red-500 text-xs mb-2">{validationError}</div>
)}
<div className="flex flex-col p-4 w-64">
<div className="tabs">
<a className={`tab tab-lifted ${activeTab === 'api' ? 'tab-active' : ''}`} onClick={() => setActiveTab('api')}><GlobeAltIcon className="h-5 w-5 mr-2" /> API</a>
<a className={`tab tab-lifted ${activeTab === 'storage' ? 'tab-active' : ''}`} onClick={() => setActiveTab('storage')}><CircleStackIcon className="h-5 w-5 mr-2" /> Storage</a>
</div>

{activeTab === 'api' && (
<div className="pt-4">
{providersWithCustom.map((provider, i) => (
<button
key={i}
onClick={() => chooseProvider(provider)}
className={`btn rounded-full px-4 mb-2 relative justify-start w-full ${selectedProvider &&
selectedProvider.apiEndpoint === provider.apiEndpoint
? "btn-primary"
: "btn-ghost"
}`}
>
<div className="ml-2 mr-2">
<div className="text-xs text-left whitespace-nowrap">
{provider.name}
{selectedProvider &&
selectedProvider.apiEndpoint === provider.apiEndpoint && (
<span className="ml-2 h-2 w-2 rounded-full bg-green-500 inline-block"></span>
)}
</div>
</div>
</button>
))}
<button
onClick={addCustomProvider}
className={"btn btn-primary btn-sm btn-block"}
onClick={toggleCustomProviderInputs}
className="btn btn-sm btn-block bg-white text-black mt-4"
>
Set Custom Provider
</button>
{showCustomProviderInputs && (
<div className="mt-4">
<div className="text-sm font-semibold mb-2">Custom Provider</div>
<input
type="text"
placeholder="https://api.gitopia.com"
value={customProvider.apiEndpoint}
onChange={(e) =>
handleCustomProviderChange("apiEndpoint", e.target.value)
}
className="input input-bordered w-full mb-2"
/>
<input
type="text"
placeholder="https://rpc.gitopia.com"
value={customProvider.rpcEndpoint}
onChange={(e) =>
handleCustomProviderChange("rpcEndpoint", e.target.value)
}
className="input input-bordered w-full mb-2"
/>
{validationError && (
<div className="text-red-500 text-xs mb-2">{validationError}</div>
)}
<button
onClick={addCustomProvider}
className={"btn btn-primary btn-sm btn-block"}
>
Set Custom Provider
</button>
</div>
)}
</div>
)}

{activeTab === 'storage' && (
<div className="pt-4">
{allStorageProviders.map((provider, i) => (
<button
key={i}
onClick={() => {
setActiveStorageProvider(provider);
notify("Storage Provider set successfully", "info");
}}
className={`btn rounded-full px-4 mb-2 relative justify-start w-full ${storageProviderName === provider.description
? "btn-primary"
: "btn-ghost"
}`}
>
<div className="ml-2 mr-2">
<div className="text-xs text-left whitespace-nowrap">
{provider.description}
{storageProviderName === provider.description && (
<span className="ml-2 h-2 w-2 rounded-full bg-green-500 inline-block"></span>
)}
</div>
</div>
</button>
))}
</div>
)}
</div>
Expand Down
Loading