From 23e0ebdceec7769e83aa7482f98e1b8a18d53c2a Mon Sep 17 00:00:00 2001 From: pranalidhanavade Date: Mon, 19 May 2025 00:25:40 +0530 Subject: [PATCH] fix: issues on org dashboard and wallet creation Signed-off-by: pranalidhanavade --- .../components/CreateOrganizationModal.tsx | 8 ++--- .../components/OrganizationDashboard.tsx | 35 +++++++++++++++---- .../components/interfaces/organization.ts | 7 ++++ 3 files changed, 40 insertions(+), 10 deletions(-) diff --git a/nextjs/src/features/organization/components/CreateOrganizationModal.tsx b/nextjs/src/features/organization/components/CreateOrganizationModal.tsx index 40b99f574..22917a336 100644 --- a/nextjs/src/features/organization/components/CreateOrganizationModal.tsx +++ b/nextjs/src/features/organization/components/CreateOrganizationModal.tsx @@ -148,10 +148,10 @@ export default function OrganizationOnboarding(): React.JSX.Element { } useEffect(() => { + getCountries() if (orgId) { setIsEditMode(true) fetchOrganizationDetails() - getCountries() } }, []) @@ -179,9 +179,9 @@ export default function OrganizationOnboarding(): React.JSX.Element { .max(500) .required('Description is required'), website: yup.string().url('Enter a valid URL').nullable(), - countryId: yup.number().nullable(), - stateId: yup.number().nullable(), - cityId: yup.number().nullable(), + countryId: yup.number().required('Country is required'), + stateId: yup.number().required('State is required'), + cityId: yup.number().required('City is required'), }) type ImageProcessCallback = (result: string | null, error?: string) => void diff --git a/nextjs/src/features/organization/components/OrganizationDashboard.tsx b/nextjs/src/features/organization/components/OrganizationDashboard.tsx index 87a4cc875..8a1589cde 100644 --- a/nextjs/src/features/organization/components/OrganizationDashboard.tsx +++ b/nextjs/src/features/organization/components/OrganizationDashboard.tsx @@ -3,15 +3,15 @@ import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' import { Card, CardContent } from '@/components/ui/card' import { Edit, Trash2 } from 'lucide-react' +import { IOrgDashboard, IOrganisation } from './interfaces/organization' import React, { useEffect, useState } from 'react' +import { getOrgDashboard, getOrganizationById } from '@/app/api/organization' import { AxiosResponse } from 'axios' import { Button } from '@/components/ui/button' -import { IOrganisation } from './interfaces/organization' import OrganizationDetails from './OrganizationDetails' import PageContainer from '@/components/layout/page-container' import { apiStatusCodes } from '@/config/CommonConstant' -import { getOrganizationById } from '@/app/api/organization' import { useAppSelector } from '@/lib/hooks' import { useRouter } from 'next/navigation' @@ -25,6 +25,7 @@ export const OrganizationDashboard = ({ }: OrganizationDashboardProps): React.JSX.Element => { const router = useRouter() const [orgData, setOrgData] = useState(null) + const [orgDashboard, setOrgDashboard] = useState(null) const [, setLoading] = useState(true) const [walletStatus, setWalletStatus] = useState(false) const [, setError] = useState(null) @@ -43,6 +44,7 @@ export const OrganizationDashboard = ({ setLoading(true) const response = await getOrganizationById(orgIdOfDashboard as string) const { data } = response as AxiosResponse + setLoading(false) if (data?.statusCode === apiStatusCodes.API_STATUS_SUCCESS) { if ( @@ -58,6 +60,22 @@ export const OrganizationDashboard = ({ setLoading(false) } + const fetchOrganizationDashboardDetails = async (): Promise => { + setLoading(true) + if (orgId) { + const response = await getOrgDashboard(orgIdOfDashboard as string) + const { data } = response as AxiosResponse + setLoading(false) + + if (data?.statusCode === apiStatusCodes.API_STATUS_SUCCESS) { + setOrgDashboard(data?.data) + } else { + setError(response as string) + } + } + setLoading(false) + } + const handleEditOrg = (): void => { router.push(`/organizations/create-organization?orgId=${orgId}`) } @@ -68,6 +86,7 @@ export const OrganizationDashboard = ({ useEffect(() => { fetchOrganizationDetails() + fetchOrganizationDashboardDetails() }, [activeOrgId]) return ( @@ -118,7 +137,9 @@ export const OrganizationDashboard = ({

Users

-

1

+

+ {orgDashboard?.usersCount ?? 0} +

-

Schemas

+

{orgDashboard?.schemasCount ?? 0}

7

@@ -171,7 +192,9 @@ export const OrganizationDashboard = ({
-

Credentials

+

+ {orgDashboard?.credentialsCount ?? 0} +

35

@@ -202,7 +225,7 @@ export const OrganizationDashboard = ({