Add description to oAuth_only app created (#20336)
## Before <img width="1000" height="555" alt="image" src="https://github.com/user-attachments/assets/bda317c7-93e7-448e-8e65-a9cc1be6df95" /> ## After <img width="1010" height="504" alt="image" src="https://github.com/user-attachments/assets/5cbc5c6c-5cc3-40d8-9545-ba0f3d2675b4" /> <img width="980" height="574" alt="image" src="https://github.com/user-attachments/assets/4386fe56-0614-4a4e-82a0-c9f46af69c85" />
This commit is contained in:
+14
-1
@@ -11,6 +11,7 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
import { getApplicationDescriptionSummary } from '~/pages/settings/applications/utils/getApplicationDescriptionSummary';
|
||||
import { type ApplicationDisplayData } from '@/applications/types/applicationDisplayData.type';
|
||||
import { StyledNameTableCell } from '@/settings/data-model/object-details/components/SettingsObjectItemTableRowStyledComponents';
|
||||
import { ApplicationRegistrationSourceType } from '~/generated-metadata/graphql';
|
||||
|
||||
export type SettingsApplicationTableRowProps = {
|
||||
action: ReactNode;
|
||||
@@ -19,16 +20,25 @@ export type SettingsApplicationTableRowProps = {
|
||||
};
|
||||
hasUpdate?: boolean;
|
||||
link?: string;
|
||||
sourceType?: ApplicationRegistrationSourceType;
|
||||
};
|
||||
|
||||
export const APPLICATION_TABLE_ROW_GRID_TEMPLATE_COLUMNS =
|
||||
'164px minmax(0, 1fr) 36px';
|
||||
'164px 80px minmax(0, 1fr) 36px';
|
||||
|
||||
const SOURCE_TYPE_LABELS: Record<ApplicationRegistrationSourceType, string> = {
|
||||
[ApplicationRegistrationSourceType.LOCAL]: 'Local',
|
||||
[ApplicationRegistrationSourceType.NPM]: 'NPM',
|
||||
[ApplicationRegistrationSourceType.OAUTH_ONLY]: 'OAuth',
|
||||
[ApplicationRegistrationSourceType.TARBALL]: 'Tarball',
|
||||
};
|
||||
|
||||
export const SettingsApplicationTableRow = ({
|
||||
action,
|
||||
application,
|
||||
hasUpdate,
|
||||
link,
|
||||
sourceType,
|
||||
}: SettingsApplicationTableRowProps) => {
|
||||
const resolvedDescription = useResolvedApplicationDescription(application);
|
||||
const descriptionSummary =
|
||||
@@ -43,6 +53,9 @@ export const SettingsApplicationTableRow = ({
|
||||
<StyledNameTableCell minWidth="0" overflow="hidden">
|
||||
<ApplicationDisplay application={application} />
|
||||
</StyledNameTableCell>
|
||||
<TableCell color={themeCssVariables.font.color.tertiary}>
|
||||
{sourceType ? SOURCE_TYPE_LABELS[sourceType] : t`Seeded`}
|
||||
</TableCell>
|
||||
<TableCell gap={themeCssVariables.spacing[2]} minWidth="0">
|
||||
<OverflowingTextWithTooltip text={descriptionSummary} />
|
||||
{hasUpdate === true && (
|
||||
|
||||
+22
-7
@@ -38,13 +38,26 @@ export const SettingsApplicationsTable = ({
|
||||
|
||||
const [searchTerm, setSearchTerm] = useState('');
|
||||
|
||||
const filteredApplications = applications.filter(
|
||||
(application) =>
|
||||
application.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
||||
(application.description ?? '')
|
||||
.toLowerCase()
|
||||
.includes(searchTerm.toLowerCase()),
|
||||
);
|
||||
const filteredApplications = applications
|
||||
.filter(
|
||||
(application) =>
|
||||
application.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
||||
(application.description ?? '')
|
||||
.toLowerCase()
|
||||
.includes(searchTerm.toLowerCase()),
|
||||
)
|
||||
.sort((a, b) => {
|
||||
const aIsOAuth =
|
||||
a.applicationRegistration?.sourceType ===
|
||||
ApplicationRegistrationSourceType.OAUTH_ONLY;
|
||||
const bIsOAuth =
|
||||
b.applicationRegistration?.sourceType ===
|
||||
ApplicationRegistrationSourceType.OAUTH_ONLY;
|
||||
|
||||
if (aIsOAuth === bIsOAuth) return 0;
|
||||
|
||||
return aIsOAuth ? 1 : -1;
|
||||
});
|
||||
|
||||
return (
|
||||
<Section>
|
||||
@@ -64,6 +77,7 @@ export const SettingsApplicationsTable = ({
|
||||
gridTemplateColumns={APPLICATION_TABLE_ROW_GRID_TEMPLATE_COLUMNS}
|
||||
>
|
||||
<TableHeader> {t`Name`}</TableHeader>
|
||||
<TableHeader> {t`Type`}</TableHeader>
|
||||
<TableHeader> {t`Description`}</TableHeader>
|
||||
<TableHeader> {''}</TableHeader>
|
||||
<TableHeader />
|
||||
@@ -88,6 +102,7 @@ export const SettingsApplicationsTable = ({
|
||||
key={application.id}
|
||||
application={application}
|
||||
hasUpdate={hasUpdate}
|
||||
sourceType={application.applicationRegistration?.sourceType}
|
||||
action={
|
||||
<IconChevronRight
|
||||
size={theme.icon.size.md}
|
||||
|
||||
+2
-1
@@ -586,7 +586,8 @@ export class OAuthService {
|
||||
return this.applicationService.create({
|
||||
universalIdentifier: applicationRegistration.universalIdentifier,
|
||||
name: applicationRegistration.name,
|
||||
version: '0.0.0',
|
||||
description: `OAuth application registered as "${applicationRegistration.name}"`,
|
||||
version: applicationRegistration.latestAvailableVersion ?? '1.0.0',
|
||||
sourcePath: 'oauth-install',
|
||||
applicationRegistrationId: applicationRegistration.id,
|
||||
workspaceId,
|
||||
|
||||
Reference in New Issue
Block a user