diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..7fc6c8d --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @0xDazzer @jonybur @jeremy-babylonlabs @jrwbabylonlab @gbarkhatov diff --git a/src/components/FinalityProviderItem/FinalityProviderItem.stories.tsx b/src/elements/FinalityProviderItem/FinalityProviderItem.stories.tsx similarity index 100% rename from src/components/FinalityProviderItem/FinalityProviderItem.stories.tsx rename to src/elements/FinalityProviderItem/FinalityProviderItem.stories.tsx diff --git a/src/components/FinalityProviderItem/FinalityProviderItem.tsx b/src/elements/FinalityProviderItem/FinalityProviderItem.tsx similarity index 87% rename from src/components/FinalityProviderItem/FinalityProviderItem.tsx rename to src/elements/FinalityProviderItem/FinalityProviderItem.tsx index f69de9b..bf0d5ab 100644 --- a/src/components/FinalityProviderItem/FinalityProviderItem.tsx +++ b/src/elements/FinalityProviderItem/FinalityProviderItem.tsx @@ -1,6 +1,6 @@ -import { Avatar } from "../Avatar"; -import { Text } from "../Text"; -import { FinalityProviderLogo } from "../FinalityProviderLogo"; +import { Avatar } from "../../components/Avatar"; +import { Text } from "../../components/Text"; +import { FinalityProviderLogo } from "../FinalityProviderLogo/FinalityProviderLogo"; interface ProviderDescription { moniker?: string; @@ -17,7 +17,7 @@ interface FinalityProviderItemProps { bsnName: string; bsnLogoUrl?: string; provider: Provider; - onRemove: (bsnId?: string) => void; + onRemove: (id?: string) => void; } export function FinalityProviderItem({ bsnId, bsnName, bsnLogoUrl, provider, onRemove }: FinalityProviderItemProps) { diff --git a/src/components/FinalityProviderItem/index.ts b/src/elements/FinalityProviderItem/index.ts similarity index 100% rename from src/components/FinalityProviderItem/index.ts rename to src/elements/FinalityProviderItem/index.ts diff --git a/src/components/FinalityProviderLogo/FinalityProviderLogo.stories.tsx b/src/elements/FinalityProviderLogo/FinalityProviderLogo.stories.tsx similarity index 100% rename from src/components/FinalityProviderLogo/FinalityProviderLogo.stories.tsx rename to src/elements/FinalityProviderLogo/FinalityProviderLogo.stories.tsx diff --git a/src/components/FinalityProviderLogo/FinalityProviderLogo.tsx b/src/elements/FinalityProviderLogo/FinalityProviderLogo.tsx similarity index 96% rename from src/components/FinalityProviderLogo/FinalityProviderLogo.tsx rename to src/elements/FinalityProviderLogo/FinalityProviderLogo.tsx index 051103f..5e25eef 100644 --- a/src/components/FinalityProviderLogo/FinalityProviderLogo.tsx +++ b/src/elements/FinalityProviderLogo/FinalityProviderLogo.tsx @@ -1,4 +1,4 @@ -import { Text } from "../Text"; +import { Text } from "../../components/Text"; import { useState } from "react"; import { twMerge } from "tailwind-merge"; diff --git a/src/components/FinalityProviderLogo/index.ts b/src/elements/FinalityProviderLogo/index.ts similarity index 100% rename from src/components/FinalityProviderLogo/index.ts rename to src/elements/FinalityProviderLogo/index.ts diff --git a/src/components/ProvidersList/ProvidersList.stories.tsx b/src/elements/ProvidersList/ProvidersList.stories.tsx similarity index 100% rename from src/components/ProvidersList/ProvidersList.stories.tsx rename to src/elements/ProvidersList/ProvidersList.stories.tsx diff --git a/src/components/ProvidersList/ProvidersList.tsx b/src/elements/ProvidersList/ProvidersList.tsx similarity index 96% rename from src/components/ProvidersList/ProvidersList.tsx rename to src/elements/ProvidersList/ProvidersList.tsx index 90fd9f5..4f2c529 100644 --- a/src/components/ProvidersList/ProvidersList.tsx +++ b/src/elements/ProvidersList/ProvidersList.tsx @@ -21,7 +21,7 @@ export interface ProviderItem { interface ProvidersListProps { items: ProviderItem[]; - onRemove: (bsnId?: string) => void; + onRemove: (id?: string) => void; } export function ProvidersList({ items, onRemove }: ProvidersListProps) { diff --git a/src/components/ProvidersList/index.ts b/src/elements/ProvidersList/index.ts similarity index 100% rename from src/components/ProvidersList/index.ts rename to src/elements/ProvidersList/index.ts diff --git a/src/index.tsx b/src/index.tsx index c2db8fb..88fbfb9 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -17,7 +17,6 @@ export * from "./components/Toggle"; export * from "./components/List"; export * from "./components/Badge"; export * from "./components/SubSection"; -export * from "./components/FinalityProviderLogo"; export * from "./components/CounterButton"; export * from "./components/Menu"; @@ -30,10 +29,13 @@ export * from "./widgets/form/SelectField"; export * from "./widgets/form/HiddenField"; export * from "./widgets/form/hooks"; -export * from "./widgets/new-design/AmountSubsection"; -export * from "./widgets/new-design/FinalityProviderSubsection"; -export * from "./widgets/new-design/FeesSection"; -export * from "./widgets/new-design/PreviewModal"; +export * from "./widgets/sections/AmountSubsection"; +export * from "./widgets/sections/FinalityProviderSubsection"; +export * from "./widgets/sections/FeesSection"; +export * from "./widgets/sections/PreviewModal"; + +export * from "./elements/FinalityProviderLogo"; +export * from "./elements/FinalityProviderItem"; export * from "./components/ListLegacy"; diff --git a/src/widgets/new-design/AmountSubsection/AmountSubsection.stories.tsx b/src/widgets/sections/AmountSubsection/AmountSubsection.stories.tsx similarity index 100% rename from src/widgets/new-design/AmountSubsection/AmountSubsection.stories.tsx rename to src/widgets/sections/AmountSubsection/AmountSubsection.stories.tsx diff --git a/src/widgets/new-design/AmountSubsection/AmountSubsection.tsx b/src/widgets/sections/AmountSubsection/AmountSubsection.tsx similarity index 100% rename from src/widgets/new-design/AmountSubsection/AmountSubsection.tsx rename to src/widgets/sections/AmountSubsection/AmountSubsection.tsx diff --git a/src/widgets/new-design/AmountSubsection/index.tsx b/src/widgets/sections/AmountSubsection/index.tsx similarity index 100% rename from src/widgets/new-design/AmountSubsection/index.tsx rename to src/widgets/sections/AmountSubsection/index.tsx diff --git a/src/widgets/new-design/FeesSection/BBNFeeAmount.tsx b/src/widgets/sections/FeesSection/BBNFeeAmount.tsx similarity index 100% rename from src/widgets/new-design/FeesSection/BBNFeeAmount.tsx rename to src/widgets/sections/FeesSection/BBNFeeAmount.tsx diff --git a/src/widgets/new-design/FeesSection/BTCFeeAmount.tsx b/src/widgets/sections/FeesSection/BTCFeeAmount.tsx similarity index 100% rename from src/widgets/new-design/FeesSection/BTCFeeAmount.tsx rename to src/widgets/sections/FeesSection/BTCFeeAmount.tsx diff --git a/src/widgets/new-design/FeesSection/BTCFeeRate.tsx b/src/widgets/sections/FeesSection/BTCFeeRate.tsx similarity index 100% rename from src/widgets/new-design/FeesSection/BTCFeeRate.tsx rename to src/widgets/sections/FeesSection/BTCFeeRate.tsx diff --git a/src/widgets/new-design/FeesSection/FeeItem.tsx b/src/widgets/sections/FeesSection/FeeItem.tsx similarity index 100% rename from src/widgets/new-design/FeesSection/FeeItem.tsx rename to src/widgets/sections/FeesSection/FeeItem.tsx diff --git a/src/widgets/new-design/FeesSection/FeesSection.stories.tsx b/src/widgets/sections/FeesSection/FeesSection.stories.tsx similarity index 100% rename from src/widgets/new-design/FeesSection/FeesSection.stories.tsx rename to src/widgets/sections/FeesSection/FeesSection.stories.tsx diff --git a/src/widgets/new-design/FeesSection/FeesSection.tsx b/src/widgets/sections/FeesSection/FeesSection.tsx similarity index 100% rename from src/widgets/new-design/FeesSection/FeesSection.tsx rename to src/widgets/sections/FeesSection/FeesSection.tsx diff --git a/src/widgets/new-design/FeesSection/Total.tsx b/src/widgets/sections/FeesSection/Total.tsx similarity index 100% rename from src/widgets/new-design/FeesSection/Total.tsx rename to src/widgets/sections/FeesSection/Total.tsx diff --git a/src/widgets/new-design/FeesSection/index.ts b/src/widgets/sections/FeesSection/index.ts similarity index 100% rename from src/widgets/new-design/FeesSection/index.ts rename to src/widgets/sections/FeesSection/index.ts diff --git a/src/widgets/new-design/FinalityProviderSubsection/FinalityProviderSubsection.stories.tsx b/src/widgets/sections/FinalityProviderSubsection/FinalityProviderSubsection.stories.tsx similarity index 68% rename from src/widgets/new-design/FinalityProviderSubsection/FinalityProviderSubsection.stories.tsx rename to src/widgets/sections/FinalityProviderSubsection/FinalityProviderSubsection.stories.tsx index cf55c93..c71550c 100644 --- a/src/widgets/new-design/FinalityProviderSubsection/FinalityProviderSubsection.stories.tsx +++ b/src/widgets/sections/FinalityProviderSubsection/FinalityProviderSubsection.stories.tsx @@ -1,7 +1,7 @@ import type { Meta, StoryObj } from "@storybook/react"; import { FinalityProviderSubsection } from "./FinalityProviderSubsection"; -import type { ProviderItem } from "../../../components/ProvidersList/ProvidersList"; +import type { ProviderItem } from "../../../elements/ProvidersList/ProvidersList"; const sampleItems: ProviderItem[] = [ { @@ -84,72 +84,102 @@ export const Default: Story = { args: { max: 3, items: sampleItems, + actionText: "Add BSN and Finality Provider", onAdd: () => alert("Add clicked"), onRemove: () => alert("Remove clicked"), }, - render: (props: { max: number; items: ProviderItem[]; onAdd: () => void; onRemove: (bsnId?: string) => void }) => ( - - ), + render: (props: { + max: number; + items: ProviderItem[]; + actionText: string; + onAdd: () => void; + onRemove: (bsnId?: string) => void; + }) => , }; export const Empty: Story = { args: { max: 3, items: [], + actionText: "Add BSN and Finality Provider", onAdd: () => alert("Add clicked"), onRemove: () => alert("Remove clicked"), }, - render: (props: { max: number; items: ProviderItem[]; onAdd: () => void; onRemove: (bsnId?: string) => void }) => ( - - ), + render: (props: { + max: number; + items: ProviderItem[]; + actionText: string; + onAdd: () => void; + onRemove: (bsnId?: string) => void; + }) => , }; export const MultipleItems: Story = { args: { max: 5, items: multipleItems, + actionText: "Add BSN and Finality Provider", onAdd: () => alert("Add clicked"), onRemove: (bsnId?: string) => alert(`Remove clicked for ${bsnId}`), }, - render: (props: { max: number; items: ProviderItem[]; onAdd: () => void; onRemove: (bsnId?: string) => void }) => ( - - ), + render: (props: { + max: number; + items: ProviderItem[]; + actionText: string; + onAdd: () => void; + onRemove: (bsnId?: string) => void; + }) => , }; export const AtMaximumCapacity: Story = { args: { max: 3, items: maxCapacityItems, + actionText: "Add BSN and Finality Provider", onAdd: () => alert("Add clicked"), onRemove: (bsnId?: string) => alert(`Remove clicked for ${bsnId}`), }, - render: (props: { max: number; items: ProviderItem[]; onAdd: () => void; onRemove: (bsnId?: string) => void }) => ( - - ), + render: (props: { + max: number; + items: ProviderItem[]; + actionText: string; + onAdd: () => void; + onRemove: (bsnId?: string) => void; + }) => , }; export const SingleProviderMode: Story = { args: { max: 1, items: [], + actionText: "Add Finality Provider", onAdd: () => alert("Add clicked"), onRemove: () => alert("Remove clicked"), }, - render: (props: { max: number; items: ProviderItem[]; onAdd: () => void; onRemove: (bsnId?: string) => void }) => ( - - ), + render: (props: { + max: number; + items: ProviderItem[]; + actionText: string; + onAdd: () => void; + onRemove: (bsnId?: string) => void; + }) => , }; export const SingleProviderModeWithItem: Story = { args: { max: 1, items: [sampleItems[0]], + actionText: "Add Finality Provider", onAdd: () => alert("Add clicked"), onRemove: (bsnId?: string) => alert(`Remove clicked for ${bsnId}`), }, - render: (props: { max: number; items: ProviderItem[]; onAdd: () => void; onRemove: (bsnId?: string) => void }) => ( - - ), + render: (props: { + max: number; + items: ProviderItem[]; + actionText: string; + onAdd: () => void; + onRemove: (bsnId?: string) => void; + }) => , }; export const ProvidersWithoutLogos: Story = { @@ -174,12 +204,17 @@ export const ProvidersWithoutLogos: Story = { }, }, ], + actionText: "Add BSN and Finality Provider", onAdd: () => alert("Add clicked"), onRemove: (bsnId?: string) => alert(`Remove clicked for ${bsnId}`), }, - render: (props: { max: number; items: ProviderItem[]; onAdd: () => void; onRemove: (bsnId?: string) => void }) => ( - - ), + render: (props: { + max: number; + items: ProviderItem[]; + actionText: string; + onAdd: () => void; + onRemove: (bsnId?: string) => void; + }) => , }; export const ProvidersWithoutDescriptions: Story = { @@ -206,10 +241,15 @@ export const ProvidersWithoutDescriptions: Story = { }, }, ], + actionText: "Add BSN and Finality Provider", onAdd: () => alert("Add clicked"), onRemove: (bsnId?: string) => alert(`Remove clicked for ${bsnId}`), }, - render: (props: { max: number; items: ProviderItem[]; onAdd: () => void; onRemove: (bsnId?: string) => void }) => ( - - ), + render: (props: { + max: number; + items: ProviderItem[]; + actionText: string; + onAdd: () => void; + onRemove: (bsnId?: string) => void; + }) => , }; diff --git a/src/widgets/new-design/FinalityProviderSubsection/FinalityProviderSubsection.tsx b/src/widgets/sections/FinalityProviderSubsection/FinalityProviderSubsection.tsx similarity index 69% rename from src/widgets/new-design/FinalityProviderSubsection/FinalityProviderSubsection.tsx rename to src/widgets/sections/FinalityProviderSubsection/FinalityProviderSubsection.tsx index d09a087..b2945a7 100644 --- a/src/widgets/new-design/FinalityProviderSubsection/FinalityProviderSubsection.tsx +++ b/src/widgets/sections/FinalityProviderSubsection/FinalityProviderSubsection.tsx @@ -3,21 +3,19 @@ import { SubSection } from "../../../components/SubSection"; import { useMemo } from "react"; import { CounterButton } from "../../../components/CounterButton/CounterButton"; -import { ProvidersList, ProviderItem } from "../../../components/ProvidersList/ProvidersList"; +import { ProvidersList, ProviderItem } from "../../../elements/ProvidersList/ProvidersList"; interface Props { max: number; items: ProviderItem[]; + actionText: string; onAdd: () => void; - onRemove: (bsnId?: string) => void; + onRemove: (id?: string) => void; } -export function FinalityProviderSubsection({ max, items = [], onAdd, onRemove }: Props) { +export function FinalityProviderSubsection({ max, items = [], actionText, onAdd, onRemove }: Props) { const count = useMemo(() => items.length, [items]); - const allowsMultipleBsns = max > 1; - const actionText = allowsMultipleBsns ? "Add BSN and Finality Provider" : "Add Finality Provider"; - return (
diff --git a/src/widgets/new-design/FinalityProviderSubsection/index.tsx b/src/widgets/sections/FinalityProviderSubsection/index.tsx similarity index 100% rename from src/widgets/new-design/FinalityProviderSubsection/index.tsx rename to src/widgets/sections/FinalityProviderSubsection/index.tsx diff --git a/src/widgets/new-design/PreviewModal/PreviewModal.stories.tsx b/src/widgets/sections/PreviewModal/PreviewModal.stories.tsx similarity index 100% rename from src/widgets/new-design/PreviewModal/PreviewModal.stories.tsx rename to src/widgets/sections/PreviewModal/PreviewModal.stories.tsx diff --git a/src/widgets/new-design/PreviewModal/PreviewModal.tsx b/src/widgets/sections/PreviewModal/PreviewModal.tsx similarity index 100% rename from src/widgets/new-design/PreviewModal/PreviewModal.tsx rename to src/widgets/sections/PreviewModal/PreviewModal.tsx diff --git a/src/widgets/new-design/PreviewModal/index.tsx b/src/widgets/sections/PreviewModal/index.tsx similarity index 100% rename from src/widgets/new-design/PreviewModal/index.tsx rename to src/widgets/sections/PreviewModal/index.tsx