[Apps SDK] Fix rich app link in documentation (#19007)
- Fix link to rich app for LLMS - Add example of extension of existing object in rich app (post card app)
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
## Base documentation
|
## Base documentation
|
||||||
|
|
||||||
- Documentation: https://docs.twenty.com/developers/extend/capabilities/apps
|
- Documentation: https://docs.twenty.com/developers/extend/capabilities/apps
|
||||||
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-sdk/src/app-seeds/rich-app
|
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/fixtures/postcard-app
|
||||||
|
|
||||||
## UUID requirement
|
## UUID requirement
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
## Base documentation
|
## Base documentation
|
||||||
|
|
||||||
- Documentation: https://docs.twenty.com/developers/extend/capabilities/apps
|
- Documentation: https://docs.twenty.com/developers/extend/capabilities/apps
|
||||||
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-sdk/src/app-seeds/rich-app
|
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/fixtures/postcard-app
|
||||||
|
|
||||||
## UUID requirement
|
## UUID requirement
|
||||||
- All generated UUIDs must be valid UUID v4.
|
- All generated UUIDs must be valid UUID v4.
|
||||||
|
|||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
import {
|
||||||
|
defineField,
|
||||||
|
FieldType,
|
||||||
|
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||||
|
} from 'twenty-sdk';
|
||||||
|
|
||||||
|
// Field on existing company object
|
||||||
|
export default defineField({
|
||||||
|
universalIdentifier: 'f922fdb8-10a9-4f11-a1d0-992a779f6dff',
|
||||||
|
objectUniversalIdentifier:
|
||||||
|
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.company.universalIdentifier,
|
||||||
|
type: FieldType.BOOLEAN,
|
||||||
|
name: 'canReceivePostcards',
|
||||||
|
label: 'Can Receive Postcards',
|
||||||
|
description: 'Whether the company can receive postcards',
|
||||||
|
icon: 'IconMailbox',
|
||||||
|
defaultValue: false,
|
||||||
|
});
|
||||||
@@ -6,6 +6,9 @@ export const RECIPIENT_UNIVERSAL_IDENTIFIER =
|
|||||||
export const RECIPIENT_EMAIL_FIELD_UNIVERSAL_IDENTIFIER =
|
export const RECIPIENT_EMAIL_FIELD_UNIVERSAL_IDENTIFIER =
|
||||||
'd2a2b3c4-5e6f-4a7b-8c9d-0e1f2a3b4c5d';
|
'd2a2b3c4-5e6f-4a7b-8c9d-0e1f2a3b4c5d';
|
||||||
|
|
||||||
|
export const RECIPIENT_ADDRESS_FIELD_UNIVERSAL_IDENTIFIER =
|
||||||
|
'd3a2b3c4-5e6f-4a7b-8c9d-0e1f2a3b4c5d';
|
||||||
|
|
||||||
export default defineObject({
|
export default defineObject({
|
||||||
universalIdentifier: RECIPIENT_UNIVERSAL_IDENTIFIER,
|
universalIdentifier: RECIPIENT_UNIVERSAL_IDENTIFIER,
|
||||||
nameSingular: 'recipient',
|
nameSingular: 'recipient',
|
||||||
@@ -23,7 +26,7 @@ export default defineObject({
|
|||||||
icon: 'IconMail',
|
icon: 'IconMail',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
universalIdentifier: 'd3a2b3c4-5e6f-4a7b-8c9d-0e1f2a3b4c5d',
|
universalIdentifier: RECIPIENT_ADDRESS_FIELD_UNIVERSAL_IDENTIFIER,
|
||||||
type: FieldType.ADDRESS,
|
type: FieldType.ADDRESS,
|
||||||
label: 'Mailing Address',
|
label: 'Mailing Address',
|
||||||
name: 'mailingAddress',
|
name: 'mailingAddress',
|
||||||
|
|||||||
+7
-3
@@ -1,13 +1,16 @@
|
|||||||
|
import { defineView } from 'twenty-sdk';
|
||||||
|
import { ViewType } from 'twenty-shared/types';
|
||||||
import {
|
import {
|
||||||
POST_CARD_RECIPIENT_UNIVERSAL_IDENTIFIER,
|
POST_CARD_RECIPIENT_UNIVERSAL_IDENTIFIER,
|
||||||
SENT_AT_FIELD_UNIVERSAL_IDENTIFIER,
|
SENT_AT_FIELD_UNIVERSAL_IDENTIFIER,
|
||||||
} from '../objects/post-card-recipient.object';
|
} from '../objects/post-card-recipient.object';
|
||||||
import { defineView } from 'twenty-sdk';
|
|
||||||
import { ViewType } from 'twenty-shared/types';
|
|
||||||
|
|
||||||
export const ALL_POST_CARD_RECIPIENTS_VIEW_ID =
|
export const ALL_POST_CARD_RECIPIENTS_VIEW_ID =
|
||||||
'b1a2b3c4-0003-4a7b-8c9d-0e1f2a3b4c5d';
|
'b1a2b3c4-0003-4a7b-8c9d-0e1f2a3b4c5d';
|
||||||
|
|
||||||
|
export const POST_CARD_RECIPIENT_SENT_AT_FIELD_UNIVERSAL_IDENTIFIER =
|
||||||
|
'fd959c6f-3465-4a3a-b7ad-3f4004fffc9a';
|
||||||
|
|
||||||
export default defineView({
|
export default defineView({
|
||||||
universalIdentifier: ALL_POST_CARD_RECIPIENTS_VIEW_ID,
|
universalIdentifier: ALL_POST_CARD_RECIPIENTS_VIEW_ID,
|
||||||
name: 'All Post Card Recipients',
|
name: 'All Post Card Recipients',
|
||||||
@@ -17,7 +20,8 @@ export default defineView({
|
|||||||
position: 2,
|
position: 2,
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
universalIdentifier: 'bf1a2b3c-0004-4a7b-8c9d-0e1f2a3b4c5d',
|
universalIdentifier:
|
||||||
|
POST_CARD_RECIPIENT_SENT_AT_FIELD_UNIVERSAL_IDENTIFIER,
|
||||||
fieldMetadataUniversalIdentifier: SENT_AT_FIELD_UNIVERSAL_IDENTIFIER,
|
fieldMetadataUniversalIdentifier: SENT_AT_FIELD_UNIVERSAL_IDENTIFIER,
|
||||||
position: 0,
|
position: 0,
|
||||||
isVisible: true,
|
isVisible: true,
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
|
import { defineView } from 'twenty-sdk';
|
||||||
|
import { ViewType } from 'twenty-shared/types';
|
||||||
import {
|
import {
|
||||||
|
RECIPIENT_ADDRESS_FIELD_UNIVERSAL_IDENTIFIER,
|
||||||
RECIPIENT_EMAIL_FIELD_UNIVERSAL_IDENTIFIER,
|
RECIPIENT_EMAIL_FIELD_UNIVERSAL_IDENTIFIER,
|
||||||
RECIPIENT_UNIVERSAL_IDENTIFIER,
|
RECIPIENT_UNIVERSAL_IDENTIFIER,
|
||||||
} from '../objects/recipient.object';
|
} from '../objects/recipient.object';
|
||||||
import { defineView } from 'twenty-sdk';
|
|
||||||
import { ViewType } from 'twenty-shared/types';
|
|
||||||
|
|
||||||
export const ALL_RECIPIENTS_VIEW_ID = 'b1a2b3c4-0002-4a7b-8c9d-0e1f2a3b4c5d';
|
export const ALL_RECIPIENTS_VIEW_ID = 'b1a2b3c4-0002-4a7b-8c9d-0e1f2a3b4c5d';
|
||||||
|
|
||||||
@@ -23,5 +24,13 @@ export default defineView({
|
|||||||
isVisible: true,
|
isVisible: true,
|
||||||
size: 200,
|
size: 200,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
universalIdentifier: 'bf1a2b3c-0004-4a7b-8c9d-0e1f2a3b4c5d',
|
||||||
|
fieldMetadataUniversalIdentifier:
|
||||||
|
RECIPIENT_ADDRESS_FIELD_UNIVERSAL_IDENTIFIER,
|
||||||
|
position: 1,
|
||||||
|
isVisible: true,
|
||||||
|
size: 150,
|
||||||
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
## Base documentation
|
## Base documentation
|
||||||
|
|
||||||
- Documentation: https://docs.twenty.com/developers/extend/capabilities/apps
|
- Documentation: https://docs.twenty.com/developers/extend/capabilities/apps
|
||||||
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-sdk/src/app-seeds/rich-app
|
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/fixtures/postcard-app
|
||||||
|
|
||||||
## UUID requirement
|
## UUID requirement
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ export default defineObject({
|
|||||||
labelPlural: 'Example items',
|
labelPlural: 'Example items',
|
||||||
description: 'A sample custom object',
|
description: 'A sample custom object',
|
||||||
icon: 'IconBox',
|
icon: 'IconBox',
|
||||||
labelIdentifierFieldMetadataUniversalIdentifier: NAME_FIELD_UNIVERSAL_IDENTIFIER,
|
labelIdentifierFieldMetadataUniversalIdentifier:
|
||||||
|
NAME_FIELD_UNIVERSAL_IDENTIFIER,
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
universalIdentifier: NAME_FIELD_UNIVERSAL_IDENTIFIER,
|
universalIdentifier: NAME_FIELD_UNIVERSAL_IDENTIFIER,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
## Base documentation
|
## Base documentation
|
||||||
|
|
||||||
- Documentation: https://docs.twenty.com/developers/extend/capabilities/apps
|
- Documentation: https://docs.twenty.com/developers/extend/capabilities/apps
|
||||||
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-sdk/src/app-seeds/rich-app
|
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/fixtures/postcard-app
|
||||||
|
|
||||||
## Common Pitfalls
|
## Common Pitfalls
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user