feat(applications): restore the application custom settings tab (#23256)
## Summary Restores the application **custom settings tab** feature that was removed in #22156. This reverts that removal so applications can again expose a custom settings tab via a front component. ## Changes - Restore the `SettingsApplicationCustomTab` component and its tab entry/rendering in `SettingsApplicationDetails`. - `ApplicationManifestMigrationService` syncs `settingsCustomTabFrontComponent` from application manifests again (`syncDefaultRoleAndSettingsCustomTab`), resolving the front component from `settingsCustomTabFrontComponentUniversalIdentifier`. - Remove the deprecation annotations added by #22156: - `ApplicationDTO.settingsCustomTabFrontComponentId` (drop GraphQL `@deprecated`) - `ApplicationManifest.settingsCustomTabFrontComponentUniversalIdentifier` - the `settingsCustomTabFrontComponentId` column comment on `ApplicationEntity` - Regenerate the corresponding GraphQL schema/types to drop the `@deprecated` reason. The DB column was never dropped, so no schema migration is required. --- _Generated by [Claude Code](https://claude.ai/code/session_01A6aoLa5kZjba9C3uwo6nay)_ <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/twentyhq/twenty/pull/23256?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> --------- Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { type PostInstallLogicFunctionApplicationManifest } from '@/application/postInstallLogicFunctionApplicationType';
|
||||
import { type PreInstallLogicFunctionApplicationManifest } from '@/application/preInstallLogicFunctionApplicationType';
|
||||
import { type SettingsFrontComponentApplicationManifest } from '@/application/settingsFrontComponentApplicationType';
|
||||
import { type UninstallLogicFunctionApplicationManifest } from '@/application/uninstallLogicFunctionApplicationType';
|
||||
import { type ApplicationCategory } from './applicationCategoryType';
|
||||
import { type ApplicationVariables } from './applicationVariablesType';
|
||||
@@ -32,10 +33,10 @@ export type ApplicationManifest = SyncableEntityOptions & {
|
||||
postInstallLogicFunction?: PostInstallLogicFunctionApplicationManifest;
|
||||
preInstallLogicFunction?: PreInstallLogicFunctionApplicationManifest;
|
||||
uninstallLogicFunction?: UninstallLogicFunctionApplicationManifest;
|
||||
settingsFrontComponent?: SettingsFrontComponentApplicationManifest;
|
||||
/**
|
||||
* @deprecated Custom settings tabs are no longer supported. This property is
|
||||
* kept for backward compatibility with older manifests but is now ignored.
|
||||
* Use typed `applicationVariables` / `serverVariables` instead.
|
||||
* @deprecated Use `defineSettingsFrontComponent()` (exposed on the manifest
|
||||
* as `settingsFrontComponent`) instead. This property is ignored.
|
||||
*/
|
||||
settingsCustomTabFrontComponentUniversalIdentifier?: string;
|
||||
packageJsonChecksum: string | null;
|
||||
|
||||
@@ -135,6 +135,7 @@ export type { RunAgentInput, RunAgentResult } from './runAgentType';
|
||||
export type { ServerVariables } from './server-variables.type';
|
||||
export type { ServerRouteDispatchResult } from './serverRouteDispatchResultType';
|
||||
export type { ServerRouteTriggerSettings } from './serverRouteTriggerSettingsType';
|
||||
export type { SettingsFrontComponentApplicationManifest } from './settingsFrontComponentApplicationType';
|
||||
export type { SkillManifest } from './skillManifestType';
|
||||
export type { StoredOAuthConnectionProviderConfig } from './storedOAuthConnectionProviderConfigType';
|
||||
export type { SyncableEntityOptions } from './syncableEntityOptionsType';
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
export type SettingsFrontComponentApplicationManifest = {
|
||||
universalIdentifier: string;
|
||||
};
|
||||
Reference in New Issue
Block a user