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

fix: rename list reroute #154

Merged
merged 7 commits into from
Feb 7, 2023
Merged
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Bug fixes

- [#154](https://github.com/alleslabs/celatone-frontend/pull/154) Stay on the same contract list page after renaming the list
- [#155](https://github.com/alleslabs/celatone-frontend/pull/155) Fix uncontrolled input error and fix space bar issue in editable cell
- [#156](https://github.com/alleslabs/celatone-frontend/pull/156) Fix json editor cannot focus by clicking on empty area
- [#166](https://github.com/alleslabs/celatone-frontend/pull/166) Change default list when editing contract information
Expand Down
11 changes: 9 additions & 2 deletions src/lib/app-provider/hooks/useInternalNavigate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,21 @@ interface NavigationArgs {
pathname: string;
query?: ParsedUrlQueryInput;
options?: Parameters<Pick<Router, "push">["push"]>[2];
replace?: boolean;
}

export const useInternalNavigate = () => {
const router = useRouter();

return useCallback(
({ pathname, query = {}, options = {} }: NavigationArgs) => {
router.push(
({
pathname,
query = {},
options = {},
replace = false,
}: NavigationArgs) => {
const routerFn = replace ? router.replace : router.push;
routerFn(
{
pathname: `/[network]${pathname}`,
/**
Expand Down
6 changes: 3 additions & 3 deletions src/lib/components/ContractSelectSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import type { ContractLocalInfo } from "lib/stores/contract";
import type { ContractAddr, Option } from "lib/types";

import { ExplorerLink } from "./ExplorerLink";
import { EditContractDetails, SaveContractDetails } from "./modal";
import { EditContractDetailsModal, SaveContractDetailsModal } from "./modal";
import {
SelectContractAdmin,
SelectContractInstantiator,
Expand Down Expand Up @@ -68,7 +68,7 @@ const ContractDetailsButton = ({
}: ContractDetailsButtonProps) => {
const isExist = !!contractLocalInfo?.lists;
return isExist ? (
<EditContractDetails
<EditContractDetailsModal
contractLocalInfo={contractLocalInfo}
triggerElement={
<Button
Expand All @@ -81,7 +81,7 @@ const ContractDetailsButton = ({
}
/>
) : (
<SaveContractDetails
<SaveContractDetailsModal
contractLocalInfo={{
contractAddress,
instantiator,
Expand Down
4 changes: 2 additions & 2 deletions src/lib/components/button/AdminButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
MdReadMore,
} from "react-icons/md";

import { ClearAdminContract } from "../modal/contract/ClearAdminContract";
import { ClearAdminModal } from "../modal/contract/ClearAdmin";
import { useInternalNavigate } from "lib/app-provider";
import type { ContractAddr, HumanAddr, Option } from "lib/types";

Expand Down Expand Up @@ -86,7 +86,7 @@ export const AdminButton = ({ contractAddress, admin }: AdminButtonProps) => {
>
Update Admin
</StyledMenuItem>
<ClearAdminContract
<ClearAdminModal
contractAddress={contractAddress}
triggerElement={
<StyledMenuItem
Expand Down
4 changes: 2 additions & 2 deletions src/lib/components/forms/ListSelection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import type { CSSProperties } from "react";
import { useState, useRef, forwardRef } from "react";
import { MdCheck, MdClose, MdAdd } from "react-icons/md";

import { CreateNewList } from "lib/components/modal/list";
import { CreateNewListModal } from "lib/components/modal/list";
import { useContractStore, useUserKey } from "lib/hooks";
import type { LVPair } from "lib/types";
import { formatSlugName, mergeRefs } from "lib/utils";
Expand Down Expand Up @@ -235,7 +235,7 @@ export const ListSelection = forwardRef<HTMLInputElement, ListSelectionProps>(
))}
{/* creation section */}
{canCreateOption && (
<CreateNewList
<CreateNewListModal
trigger={
<ListItem
w="full"
Expand Down
6 changes: 3 additions & 3 deletions src/lib/components/modal/code/CodeDetailsTemplate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { MAX_CODE_DESCRIPTION_LENGTH } from "lib/data";
import { useCodeStore, useGetAddressType } from "lib/hooks";
import type { CodeLocalInfo } from "lib/stores/code";

interface CodeDetailsTemplateProps {
interface CodeDetailsTemplateModalProps {
title: string;
helperText?: string;
mainBtnTitle: string;
Expand All @@ -18,14 +18,14 @@ interface CodeDetailsTemplateProps {
triggerElement: JSX.Element;
}

export const CodeDetailsTemplate = ({
export const CodeDetailsTemplateModal = ({
title,
helperText,
mainBtnTitle,
isNewCode,
codeLocalInfo,
triggerElement,
}: CodeDetailsTemplateProps) => {
}: CodeDetailsTemplateModalProps) => {
const { saveNewCode, updateCodeInfo } = useCodeStore();
const toast = useToast();
const getAddressType = useGetAddressType();
Expand Down
10 changes: 5 additions & 5 deletions src/lib/components/modal/code/EditCodeDetails.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import type { CodeLocalInfo } from "lib/stores/code";

import { CodeDetailsTemplate } from "./CodeDetailsTemplate";
import { CodeDetailsTemplateModal } from "./CodeDetailsTemplate";

interface EditCodeDetailsProps {
interface EditCodeDetailsModalProps {
codeLocalInfo: CodeLocalInfo;
triggerElement: JSX.Element;
}
export const EditCodeDetails = ({
export const EditCodeDetailsModal = ({
codeLocalInfo,
triggerElement,
}: EditCodeDetailsProps) => (
<CodeDetailsTemplate
}: EditCodeDetailsModalProps) => (
<CodeDetailsTemplateModal
title="Edit Code Description"
mainBtnTitle="Save"
isNewCode={false}
Expand Down
2 changes: 1 addition & 1 deletion src/lib/components/modal/code/RemoveCode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ interface RemoveCodeModalProps {
trigger?: JSX.Element;
}

export function RemoveCode({
export function RemoveCodeModal({
codeId,
description,
trigger = (
Expand Down
10 changes: 5 additions & 5 deletions src/lib/components/modal/code/SaveCodeDetails.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import type { CodeLocalInfo } from "lib/stores/code";

import { CodeDetailsTemplate } from "./CodeDetailsTemplate";
import { CodeDetailsTemplateModal } from "./CodeDetailsTemplate";

interface SaveCodeDetailsProps {
interface SaveCodeDetailsModalProps {
codeLocalInfo: CodeLocalInfo;
triggerElement: JSX.Element;
}
export const SaveCodeDetails = ({
export const SaveCodeDetailsModal = ({
codeLocalInfo,
triggerElement,
}: SaveCodeDetailsProps) => (
<CodeDetailsTemplate
}: SaveCodeDetailsModalProps) => (
<CodeDetailsTemplateModal
title="Save New Code"
helperText={`Save other stored codes to your "Saved Codes" list`}
mainBtnTitle="Save New Code"
Expand Down
4 changes: 2 additions & 2 deletions src/lib/components/modal/code/SaveNewCode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ import { useCodeStore, useLCDEndpoint } from "lib/hooks";
import { getCodeIdInfo } from "lib/services/code";
import { getDescriptionDefault } from "lib/utils";

interface ModalProps {
interface SaveNewCodeModalProps {
buttonProps: ButtonProps;
}

export function SaveNewCodeModal({ buttonProps }: ModalProps) {
export function SaveNewCodeModal({ buttonProps }: SaveNewCodeModalProps) {
/* STATE */
const [codeId, setCodeId] = useState("");
const [codeIdStatus, setCodeIdStatus] = useState<FormStatus>({
Expand Down
8 changes: 4 additions & 4 deletions src/lib/components/modal/code/SaveOrEditCode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import { MdBookmark, MdMode } from "react-icons/md";

import type { CodeLocalInfo } from "lib/stores/code";

import { EditCodeDetails } from "./EditCodeDetails";
import { SaveCodeDetails } from "./SaveCodeDetails";
import { EditCodeDetailsModal } from "./EditCodeDetails";
import { SaveCodeDetailsModal } from "./SaveCodeDetails";

interface SaveOrEditCodeModalProps {
mode: "save" | "edit";
Expand All @@ -21,7 +21,7 @@ const StyledIcon = chakra(Icon, {
export const SaveOrEditCodeModal = observer(
({ mode, codeLocalInfo }: SaveOrEditCodeModalProps) => {
return mode === "save" ? (
<SaveCodeDetails
<SaveCodeDetailsModal
codeLocalInfo={codeLocalInfo}
triggerElement={
<Button
Expand All @@ -33,7 +33,7 @@ export const SaveOrEditCodeModal = observer(
}
/>
) : (
<EditCodeDetails
<EditCodeDetailsModal
codeLocalInfo={codeLocalInfo}
triggerElement={
<Button variant="ghost-gray" leftIcon={<StyledIcon as={MdMode} />}>
Expand Down
12 changes: 7 additions & 5 deletions src/lib/components/modal/code/SaveOrRemoveCode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { MdBookmark, MdBookmarkBorder } from "react-icons/md";

import type { CodeInfo } from "lib/types";

import { RemoveCode } from "./RemoveCode";
import { SaveCodeDetails } from "./SaveCodeDetails";
import { RemoveCodeModal } from "./RemoveCode";
import { SaveCodeDetailsModal } from "./SaveCodeDetails";

const StyledIconButton = chakra(IconButton, {
baseStyle: {
Expand All @@ -19,9 +19,11 @@ interface SaveOrRemoveCodeModalProps {
codeInfo: CodeInfo;
}

export function SaveOrRemoveCode({ codeInfo }: SaveOrRemoveCodeModalProps) {
export function SaveOrRemoveCodeModal({
codeInfo,
}: SaveOrRemoveCodeModalProps) {
return codeInfo.isSaved ? (
<RemoveCode
<RemoveCodeModal
codeId={codeInfo.id}
description={codeInfo.description}
trigger={
Expand All @@ -33,7 +35,7 @@ export function SaveOrRemoveCode({ codeInfo }: SaveOrRemoveCodeModalProps) {
}
/>
) : (
<SaveCodeDetails
<SaveCodeDetailsModal
codeLocalInfo={codeInfo}
triggerElement={
<StyledIconButton
Expand Down
6 changes: 3 additions & 3 deletions src/lib/components/modal/contract/AddToOtherList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ import { useHandleContractSave } from "lib/hooks/useHandleSave";
import type { ContractLocalInfo } from "lib/stores/contract";
import type { LVPair } from "lib/types";

interface AddToOtherListProps {
interface AddToOtherListModalProps {
contractLocalInfo: ContractLocalInfo;
triggerElement: JSX.Element;
}

export const AddToOtherList = observer(
({ contractLocalInfo, triggerElement }: AddToOtherListProps) => {
export const AddToOtherListModal = observer(
({ contractLocalInfo, triggerElement }: AddToOtherListModalProps) => {
const [contractLists, setContractLists] = useState<LVPair[]>([]);

const handleSave = useHandleContractSave({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ import { useClearAdminTx } from "lib/app-provider";
import { useTxBroadcast } from "lib/providers/tx-broadcast";
import type { ContractAddr } from "lib/types";

interface ClearAdminContractProps {
interface ClearAdminModalProps {
contractAddress: ContractAddr;
triggerElement: JSX.Element;
}

export const ClearAdminContract = ({
export const ClearAdminModal = ({
contractAddress,
triggerElement,
}: ClearAdminContractProps) => {
}: ClearAdminModalProps) => {
const { broadcast } = useTxBroadcast();
const clearAdminTx = useClearAdminTx(contractAddress);

Expand Down
6 changes: 3 additions & 3 deletions src/lib/components/modal/contract/ContractDetailsTemplate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,20 @@ import type { ContractLocalInfo } from "lib/stores/contract";
import type { LVPair } from "lib/types";
import { getDescriptionDefault, getTagsDefault } from "lib/utils";

interface ContractDetailsTemplateProps {
interface ContractDetailsTemplateModalProps {
title: string;
subtitle?: string;
contractLocalInfo: ContractLocalInfo;
triggerElement: JSX.Element;
defaultList?: LVPair[];
}
export const ContractDetailsTemplate = ({
export const ContractDetailsTemplateModal = ({
title,
subtitle,
contractLocalInfo,
triggerElement,
defaultList = [],
}: ContractDetailsTemplateProps) => {
}: ContractDetailsTemplateModalProps) => {
const defaultValues = useMemo(() => {
return {
name: contractLocalInfo.name ?? "",
Expand Down
10 changes: 5 additions & 5 deletions src/lib/components/modal/contract/EditContractDetails.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import type { ContractLocalInfo } from "lib/stores/contract";

import { ContractDetailsTemplate } from "./ContractDetailsTemplate";
import { ContractDetailsTemplateModal } from "./ContractDetailsTemplate";

interface EditContractDetailsProps {
interface EditContractDetailsModalProps {
contractLocalInfo: ContractLocalInfo;
triggerElement: JSX.Element;
}
export const EditContractDetails = ({
export const EditContractDetailsModal = ({
contractLocalInfo,
triggerElement,
}: EditContractDetailsProps) => (
<ContractDetailsTemplate
}: EditContractDetailsModalProps) => (
<ContractDetailsTemplateModal
title="Edit Contract Details"
subtitle="Filled information below will be saved on Celatone only and able to edit later."
contractLocalInfo={contractLocalInfo}
Expand Down
6 changes: 3 additions & 3 deletions src/lib/components/modal/contract/RemoveContract.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ import type { ContractLocalInfo } from "lib/stores/contract";
import type { LVPair } from "lib/types";
import { truncate } from "lib/utils";

interface ModalProps {
interface RemoveContractModalProps {
contractLocalInfo: ContractLocalInfo;
contractRemovalInfo: LVPair;
menuItemProps: MenuItemProps;
}

export function RemoveContract({
export function RemoveContractModal({
contractLocalInfo,
contractRemovalInfo,
menuItemProps,
}: ModalProps) {
}: RemoveContractModalProps) {
const displayName = contractLocalInfo.name
? contractLocalInfo.name
: truncate(contractLocalInfo.contractAddress);
Expand Down
6 changes: 3 additions & 3 deletions src/lib/components/modal/contract/SaveContractDetails.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import { DEFAULT_LIST } from "lib/data";
import type { ContractLocalInfo } from "lib/stores/contract";

import { ContractDetailsTemplate } from "./ContractDetailsTemplate";
import { ContractDetailsTemplateModal } from "./ContractDetailsTemplate";

interface SaveContractDetailsProps {
contractLocalInfo: ContractLocalInfo;
triggerElement: JSX.Element;
}
export const SaveContractDetails = ({
export const SaveContractDetailsModal = ({
contractLocalInfo,
triggerElement,
}: SaveContractDetailsProps) => (
<ContractDetailsTemplate
<ContractDetailsTemplateModal
title="Save Contract Details"
contractLocalInfo={contractLocalInfo}
triggerElement={triggerElement}
Expand Down
7 changes: 5 additions & 2 deletions src/lib/components/modal/contract/SaveNewContract.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,14 @@ interface SaveNewContractDetail extends OffchainDetail {
label: string;
}

interface SaveNewContractProps {
interface SaveNewContractModalProps {
list: LVPair;
buttonProps: ButtonProps;
}
export function SaveNewContract({ list, buttonProps }: SaveNewContractProps) {
export function SaveNewContractModal({
list,
buttonProps,
}: SaveNewContractModalProps) {
const endpoint = useLCDEndpoint();
const { indexerGraphClient } = useCelatoneApp();
const { getContractLocalInfo } = useContractStore();
Expand Down
Loading