Skip to content

Commit

Permalink
chore: fixes to resolve comments
Browse files Browse the repository at this point in the history
  • Loading branch information
obah committed Jan 23, 2025
1 parent cc64803 commit e02771c
Show file tree
Hide file tree
Showing 5 changed files with 245 additions and 201 deletions.
45 changes: 45 additions & 0 deletions frontend/src/components/dashboard/dashboard-tab/DashboardTab.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import "./dashboardTab.css";
import { ReactComponent as DepositIcon} from '../../../assets/icons/deposited.svg';
import { ReactComponent as CollateralIcon } from '../../assets/icons/collateral_dynamic.svg';
import { ReactComponent as BorrowIcon } from '../../assets/icons/borrow_dynamic.svg';

function DashboardTab({activeTab, switchTab, tabs}) {
const { COLLATERAL, BORROW, DEPOSITED } = tabs;

return (
<div className="tabs">
<button
onClick={() => switchTab(COLLATERAL)}
className={`tab ${activeTab === COLLATERAL ? 'active' : ''}`}
>
<CollateralIcon className="tab-icon" />
<span className="tab-title">Collateral & Earnings</span>
</button>

<div className="tab-divider" />

<button
onClick={() => switchTab(BORROW)}
className={`tab ${activeTab === BORROW ? 'active' : ''}`}
>
<BorrowIcon className="tab-icon" />
<span className="tab-title">Borrow</span>
</button>

<div className="tab-divider" />

<button
onClick={() => switchTab(DEPOSITED)}
className={`tab ${activeTab === DEPOSITED ? 'active' : ''}`}
>
<DepositIcon className="tab-icon" />
<span className="tab-title">Deposited</span>
</button>
<div className="tab-indicator-container">
<div className={`tab-indicator ${activeTab}`} />
</div>
</div>
)
}

export default DashboardTab;
160 changes: 160 additions & 0 deletions frontend/src/components/dashboard/dashboard-tab/dashboardTab.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
.tabs {
display: flex;
justify-content: space-between;
position: relative;
align-items: center;
}

.tab {
flex: 1;
text-align: center;
padding: 0.5rem 0;
color: var(--gray);
cursor: pointer;
border: none;
background: none;
font-size: 18px;
font-weight: 600;
display: flex;
align-items: center;
justify-content: center;
}

.tab.active {
color: var(--nav-button-hover);
}

/* .tab.active.borrow {
color: #ff35d3;
}
.tab.active.deposited {
color: var(--nav-button-hover)
} */

.tab-indicator-container {
position: absolute;
bottom: -16px;
left: 0;
width: calc(100% - 20px);
height: 1px;
overflow: hidden;
}

.tab-indicator {
position: absolute;
bottom: 0;
left: 0;
/* width: 100%; */
height: 100%;
transition: transform 0.3s ease;
}

.tab-indicator.collateral {
/* background: linear-gradient(90deg, #49abd2 0%, rgba(40, 16, 41, 0) 100%);
transform: translateX(0); */
width: 213px;
background: var(--nav-button-hover);
}

.tab-indicator.borrow {
/* background: linear-gradient(90deg, rgba(40, 16, 41, 0) 0%, #ff35d3 100%, rgba(40, 16, 41, 0) 0%,);
transform: translateX(0); */
width: 155px;
background: var(--nav-button-hover);
}

.tab-indicator.deposited {
/* background: linear-gradient(90deg, rgba(40, 16, 41, 0) 0%, #74d6fd 100%);
transform: translateX(0); */
width: 155px;
background: var(--nav-button-hover);
}

.tab-icon {
margin-right: 0.5rem;
}

.tab-title {
font-size: 18px;
font-weight: 600;
}

.tab-divider {
width: 3px;
height: 18px;
border-radius: 8px;
background-color: var(--border-color);
margin: 0 1rem;
}

@media (max-width: 768px) {
.tab-title {
font-size: 14px;
font-weight: 600;
white-space: nowrap;
}

.tab {
padding: 8px 0px;
font-size: 14px;
white-space: nowrap;
}

.tab-divider {
width: 2px;
height: 16px;
margin: 0 4px;
background-color: var(--border-color);
}

.tab-icon {
width: 20px;
height: 20px;
margin-right: 4px;
}

.tab-indicator-container {
bottom: -12px;
width: calc(100% - 16px);
}
}

@media (max-width: 550px) {
.tab-divider {
width: 2px;
height: 16px;
margin: 0 30px;
background-color: var(--border-color);
}
}

@media (max-width: 480px) {
.tab-divider {
width: 2px;
height: 16px;
margin: 0 18px;
background-color: var(--border-color);
}

.tab-title {
font-size: 14px;
}

.tab {
padding: 6px 0px;
font-size: 12px;
}
}

@media (max-width: 400px) {
.tab-title {
font-size: 12px;
}
}

@media (max-width: 350px) {
.tabs {
padding: 0;
}
}
2 changes: 1 addition & 1 deletion frontend/src/components/dashboard/deposited/Deposited.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import "./dashboard.css";
import "./deposited.css";
import { ReactComponent as EthIcon } from '../../../assets/icons/ethereum.svg';
import { ReactComponent as StrkIcon } from '../../../assets/icons/strk.svg';
import { ReactComponent as UsdIcon } from '../../../assets/icons/usd_coin.svg';
Expand Down
61 changes: 13 additions & 48 deletions frontend/src/pages/dashboard/Dashboard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import { ReactComponent as StrkIcon } from '../../assets/icons/strk.svg';
import { ReactComponent as UsdIcon } from '../../assets/icons/usd_coin.svg';
import { ReactComponent as BorrowIcon } from '../../assets/icons/borrow_dynamic.svg';
import { ReactComponent as TelegramIcon } from '../../assets/icons/telegram_dashboard.svg';
import { ReactComponent as DepositIcon} from '../../assets/icons/deposited.svg';
import Spinner from '../../components/ui/spinner/Spinner';
import useDashboardData from '../../hooks/useDashboardData';
import { useClosePosition, useCheckPosition } from '../../hooks/useClosePosition';
Expand All @@ -23,12 +22,12 @@ import clockIcon from 'assets/icons/clock.svg';
import computerIcon from 'assets/icons/computer-icon.svg';
import depositIcon from 'assets/icons/deposit.svg';
import withdrawIcon from 'assets/icons/withdraw.svg';
import Deposited from "../../components/dashboard/deposited/Deposited";
import Deposited from 'components/dashboard/deposited/Deposited';
import DashboardTab from 'components/dashboard/dashboard-tab/DashboardTab';

export default function Component({ telegramId }) {
const { walletId } = useWalletStore();
// const [isCollateralActive, setIsCollateralActive] = useState(true);
const [activeTab, setActiveTab] = useState("collateral");
const [activeTab, setActiveTab] = useState(DashboardTabs.COLLATERAL);
const [showModal, setShowModal] = useState(false);
const handleOpen = () => setShowModal(true);
const handleClose = () => setShowModal(false);
Expand Down Expand Up @@ -169,6 +168,12 @@ export default function Component({ telegramId }) {
},
];

const DashboardTabs = {
COLLATERAL: 'collateral',
BORROW: 'borrow',
DEPOSITED: 'deposited'
}

const depositedData = {eth: 1, strk: 12, usdc: 4, usdt: 9};

return (
Expand All @@ -185,40 +190,10 @@ export default function Component({ telegramId }) {
</div>
<div className="dashboard-info-container">
<div className="dashboard-info-card">
<div className="tabs">
<button
onClick={() => setActiveTab("collateral")}
className={`tab ${activeTab === "collateral" ? 'active' : ''}`}
>
<CollateralIcon className="tab-icon" />
<span className="tab-title">Collateral & Earnings</span>
</button>

<div className="tab-divider" />

<button
onClick={() => setActiveTab("borrow")}
className={`tab ${activeTab === "borrow" ? 'active' : ''}`}
>
<BorrowIcon className="tab-icon" />
<span className="tab-title">Borrow</span>
</button>

<div className="tab-divider" />
<DashboardTab activeTab={activeTab} switchTab={setActiveTab} tabs={DashboardTabs}/>

<button
onClick={() => setActiveTab("deposited")}
className={`tab ${activeTab === "deposited" ? 'active' : ''}`}
>
<DepositIcon className="tab-icon" />
<span className="tab-title">Deposited</span>
</button>
<div className="tab-indicator-container">
{/* <div className={`tab-indicator ${isCollateralActive ? 'collateral' : 'borrow'}`} /> */}
<div className={`tab-indicator ${activeTab}`} />
</div>
</div>
{activeTab === "collateral" && (
{activeTab === DashboardTabs.COLLATERAL && (
<Collateral
getCurrentSumColor={getCurrentSumColor}
startSum={startSum}
Expand All @@ -227,23 +202,13 @@ export default function Component({ telegramId }) {
/>
)}

{activeTab === "borrow" && (
{activeTab === DashboardTabs.BORROW && (
<Borrow data={cardData} />
)}

{activeTab === "deposited" && (
{activeTab === DashboardTabs.DEPOSITED && (
<Deposited data={depositedData} />
)}
{/* {isCollateralActive ? (
<Collateral
getCurrentSumColor={getCurrentSumColor}
startSum={startSum}
currentSum={currentSum}
data={cardData}
/>
) : (
<Borrow data={cardData} />
)} */}
</div>
<Button
className="redeem-btn"
Expand Down
Loading

0 comments on commit e02771c

Please sign in to comment.