Skip to content

Commit

Permalink
VC Profile - fix codegen; profile settings route and layout
Browse files Browse the repository at this point in the history
  • Loading branch information
bobbykolev committed May 29, 2024
1 parent c4c6a80 commit 176fcf9
Show file tree
Hide file tree
Showing 9 changed files with 64 additions and 24 deletions.
7 changes: 0 additions & 7 deletions src/core/apollo/generated/apollo-hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14111,13 +14111,6 @@ export const VirtualContributorDocument = gql`
virtualContributor(ID: $id) {
id
nameID
virtualPersona {
id
prompt
profile {
displayName
}
}
profile {
id
displayName
Expand Down
6 changes: 0 additions & 6 deletions src/core/apollo/generated/graphql-schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17278,12 +17278,6 @@ export type VirtualContributorQuery = {
__typename?: 'VirtualContributor';
id: string;
nameID: string;
virtualPersona: {
__typename?: 'VirtualPersona';
id: string;
prompt: string;
profile: { __typename?: 'Profile'; displayName: string };
};
profile: {
__typename?: 'Profile';
id: string;
Expand Down
2 changes: 1 addition & 1 deletion src/domain/common/profile/ProfilePageBanner.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ const ProfilePageBanner = ({
</PageTitle>
{profile?.location && <LocationCaption {...profile?.location} />}
<Actions gap={0}>
{isVirtualContributor && <VirtualContributorLabel chip />}
{onSendMessage && (
<IconButton size="small" onClick={openMessageDialog} aria-label={t('common.email')}>
<MailOutlined />
Expand All @@ -111,7 +112,6 @@ const ProfilePageBanner = ({
</IconButton>
)}
</Actions>
{isVirtualContributor && <VirtualContributorLabel chip />}
</>
}
subtitle={profile?.tagline}
Expand Down
28 changes: 28 additions & 0 deletions src/domain/community/virtualContributor/VCRoute.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import React, { FC } from 'react';
import { Route, Routes } from 'react-router-dom';
import VCProfilePage from './vcProfilePage/VCProfilePage';
import { PageLayoutHolderWithOutlet } from '../../journey/common/EntityPageLayout';
import TopLevelLayout from '../../../main/ui/layout/TopLevelLayout';
import { Error404 } from '../../../core/pages/Errors/Error404';
import VCSettingsPage from './vcSettingsPage/VCSettingsPage';

export const VCRoute: FC = () => {
return (
<Routes>
<Route path="/" element={<PageLayoutHolderWithOutlet />}>
<Route index element={<VCProfilePage />} />
</Route>
<Route path={'settings/*'} element={<VCSettingsPage />} />
<Route
path="*"
element={
<TopLevelLayout>
<Error404 />
</TopLevelLayout>
}
/>
</Routes>
);
};

export default VCRoute;
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,6 @@ query VirtualContributor ($id: UUID_NAMEID!) {
virtualContributor (ID: $id) {
id
nameID
virtualPersona {
id
prompt
profile {
displayName
}
}
profile {
id
displayName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React from 'react';
import { useVirtualContributorQuery } from '../../../../core/apollo/generated/apollo-hooks';
import { useUrlParams } from '../../../../core/routing/useUrlParams';
import ProfilePageBanner from '../../../common/profile/ProfilePageBanner';
import { buildVCProfileSettingsUrl } from '../../../../main/routing/urlBuilders';

const VCPageBanner = () => {
const { vcNameId = '' } = useUrlParams();
Expand All @@ -16,12 +17,16 @@ const VCPageBanner = () => {

const userId = data?.virtualContributor.id;

// TODO: implement hasSettings priviliges
// TBD but the current user has to be the HOST of the Account where the VC is used
const hasSettingsAccess = false;

return (
<ProfilePageBanner
isVirtualContributor
entityId={userId}
profile={profile}
settingsUri={undefined}
settingsUri={hasSettingsAccess ? buildVCProfileSettingsUrl(data?.virtualContributor.nameID || '') : undefined}
loading={loading}
/>
);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import React from 'react';
import Loading from '../../../../core/ui/loading/Loading';
import { useUrlParams } from '../../../../core/routing/useUrlParams';
import VCPageLayout from '../layout/VCPageLayout';
import { useVirtualContributorQuery } from '../../../../core/apollo/generated/apollo-hooks';

export const VCSettingsPage = () => {
const { vcNameId = '' } = useUrlParams();

const { data, loading } = useVirtualContributorQuery({
variables: {
id: vcNameId,
},
});

if (loading) return <Loading text={'Loading Virtual Contributor Settings ...'} />;

return (
<VCPageLayout>
<div>{data?.virtualContributor.profile.displayName} Settings Page</div>
</VCPageLayout>
);
};

export default VCSettingsPage;
4 changes: 2 additions & 2 deletions src/main/routing/TopLevelRoutes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import useRedirectToIdentityDomain from '../../core/auth/authentication/routing/
import { EntityPageLayoutHolder, NotFoundPageLayout, RenderPoint } from '../../domain/journey/common/EntityPageLayout';
import RedirectToWelcomeSite from '../../domain/platform/routes/RedirectToWelcomeSite';
import CreateSpaceDialog from '../../domain/journey/space/createSpace/CreateSpaceDialog';
import VCProfilePage from '../../domain/community/virtualContributor/vcProfilePage/VCProfilePage';
import VCRoute from '../../domain/community/virtualContributor/VCRoute';

export const TopLevelRoutes: FC = () => {
useRedirectToIdentityDomain();
Expand Down Expand Up @@ -117,7 +117,7 @@ export const TopLevelRoutes: FC = () => {
<NonIdentity>
<WithApmTransaction path={`:${nameOfUrl.vcNameId}/*`}>
<NoIdentityRedirect>
<VCProfilePage />
<VCRoute />
</NoIdentityRedirect>
</WithApmTransaction>
</NonIdentity>
Expand Down
2 changes: 2 additions & 0 deletions src/main/routing/urlBuilders.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,5 @@ export const buildUpdatesUrl = (journeyLocation: string) => {
export const buildAboutUrl = (journeyLocation: string | undefined) => {
return journeyLocation && `${journeyLocation}/about`;
};

export const buildVCProfileSettingsUrl = (nameID: string) => `/vc/${nameID}/settings/profile`;

0 comments on commit 176fcf9

Please sign in to comment.