Skip to content

Commit

Permalink
Sync Twenty changes (from dev to feature/template_campaign) (#1)
Browse files Browse the repository at this point in the history
* Fixed label transform issues (twentyhq#3985)

* feat: filter people in CommandMenu via last name, email and phone (twentyhq#3997)

* feat: add default value for some type of fields (twentyhq#3991)

feat: add default value for some kind of fields

* fix: invalidate cache when no record inside workspace cache version (twentyhq#3994)

* fix: invalidate cache when no record inside workspace cache version

* fix: use getVersion

* fix: workspace cache version (twentyhq#3999)

* fix: impact too many records (twentyhq#3993)

* fix: impact too many records

* fix: change env name

* fix: remove env name from error

* Fix update on delete record (twentyhq#3996)

* Integrations: design fixes and remove feature flag (twentyhq#4003)

* Integrations: design fixes and remove feature flag

* Fix

* 3757 update frontend to show correct view count (twentyhq#3967)

* Add totalCount to fetch record request

* Add totalCount to object board

* WIP Add totalCount to object table

* Update query total count on update / delete optimistic effects

* Remove console log

* Load fewer data for totalcount

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* Uploading img assets in view of read-me visual update (twentyhq#4000)

* Uploading some new visuals

* Delete packages/twenty-docs/static/img/preview-light.png

* Rename Github cover light.png to preview-light.png

* replace index light file test

* Uploaded illustration updated versions

* Adding data model illustrations

* Updated font case for data model illustrations

* Rename Emails-dark.png to emails-dark.png

* Rename Emails-light.png to emails-light.png

* Rename Index-dark.png to index-dark.png

* Rename Index-light.png to index-light.png

* Rename Kanban-dark.png to kanban-dark.png

* Rename Kanban-light.png to kanban-light.png

* Rename Keyboard-dark.png to keyboard-dark.png

* Rename Notes-dark.png to notes-dark.png

* Rename Notes-light.png to notes-light.png

* Rename Tasks-dark.png to tasks-dark.png

* Rename Tasks-light.png to tasks-light.png

* Rename Keyboard-light.png to keyboard-light.png

* Added some API settings illus - final update

* Docs include field description (twentyhq#3973)

- include field description

* Webhook Docs (twentyhq#3966)

* add webhook docs, openapi v3.1, stoplight v8

* *.*

* Resolve bugs tied to record creations on table (twentyhq#4011)

* Resolve bugs tied to record creations on table

* Fix according to PR

* Fix tests

* Updated the docs typo (twentyhq#3987)

* 3959 create a activationstatus in coreworkspace and use it in front to redirect properly (twentyhq#3989)

* Add computed field to workspace entity

* Add activationStatus to front requests

* Update Selector

* Use activation status

* Stop using selector for mock values

* Remove isCurrentWorkspaceActiveSelector

* Use activation status

* Fix typo

* Use activation status

* Create hook for sign in up navigate

* Update hook to handle profile creation

* Use varaible

* Use more readable boolean function

* Fix onboarding status (twentyhq#4019)

* Fix onboarding status

* Add comment

* Fix jest tests

* Small fix website: contributors  (twentyhq#4027)

add link on pr, fix github name first letter missing

* Fix storybook (twentyhq#4028)

* Release 0.3.1 (twentyhq#4031)

* Corrected a typo in the visuals ("TEXT TEXT") (twentyhq#4047)

* Update of the readme with updated visuals (twentyhq#4041)

* README udpated illustrations & taglines

* Delete packages/twenty-docs/static/img/create-tasks-dark.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/create-tasks-light.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/follow-your-deals-dark.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/follow-your-deals-light.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/rich-notes-dark.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/rich-notes-light.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/shortcut-navigation-dark.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/shortcut-navigation-light.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/visualise-customer-dark.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/visualise-customer-light.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/logo-square-light.svg

Logo not part of the visual identity

* Updated a typo

* Fix/workspace health type (twentyhq#4053)

* fix: memory issue with truncate command

* fix: LINK doesn't have any default value

* fix: Cannot convert LINK to column type.

* fix: handle old column type and add a warn to fix them manually

* fix: ignore enum options sync for now (twentyhq#4056)

* 3938 change email auto import to contact ive sent email to (twentyhq#3995)

* done

* working

* wip

* merge main

* almost done

* improvement

* 4008 dont create a contact company if it matches the persons domain (twentyhq#4057)

* Add SettingsAccountsEmailsBlocklistInput story

* prevent contact creation from the same company

* add todo

* improvements

* Delete packages/twenty-front/src/modules/settings/accounts/components/__stories__/SettingsAccountsEmailsBlocklistInput.stories.tsx

* refactor

* modify after review

* improve code

* [Enter] key autosave for new API key and webhook (twentyhq#3955)

* Added functionality for onKeyDown for new webhook and new API key, to save when the user presses the [Enter] key

* Update SettingsDevelopersApiKeysNew.tsx

Fix for linter

* Update SettingsDevelopersWebhooksNew.tsx

Fix for linter

* Update SettingsDevelopersApiKeysNew.tsx

Got rid of extra space in if statement

* Update SettingsDevelopersWebhooksNew.tsx

Got rid of extra space for if statement

* Update SettingsDevelopersApiKeysNew.tsx

prettier

* Update SettingsDevelopersWebhooksNew.tsx

prettier

* Fix linter

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* 3969 Adjusted Sidebar (twentyhq#3971)

* Label fix

* changes done

* Revert "Label fix"

This reverts commit 1233b58.

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* Feat/activity optimistic activities (twentyhq#4009)

* Fix naming

* Fixed cache.evict bug for relation target deletion

* Fixed cascade delete activity targets

* Working version

* Fix

* fix

* WIP

* Fixed optimistic effect target inline cell

* Removed openCreateActivityDrawer v1

* Ok for timeline

* Removed console.log

* Fix update record optimistic effect

* Refactored activity queries into useActivities for everything

* Fixed bugs

* Cleaned

* Fix lint

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* fix: Fixed LinkedIn links with unicode (twentyhq#3953)

* fix: Fixed LinkedIn links with unicode

* feat: Added checkUrlType and getDisplayValueByUrlType util functions

* fix: added working `launch.json` for VSCode (twentyhq#4037)

* fix: added working launch json for VScode

* fix: removed unused env

* chore: make twenty-server nest command scripts depend on twenty-email… (twentyhq#4055)

chore: make twenty-server nest command scripts depend on twenty-emails build

Closes twentyhq#4013

* feat: REST endpoints for metadata API (twentyhq#3912)

* parse metadata path

* metadata rest api

* add queryAction condition and return object singular/plural

* handle GET endpoint for metadata

* FindOne and FindMany query for metadata endpoint

* Request all objects and nest fields in object request

---------

Co-authored-by: martmull <martmull@hotmail.fr>

* Resolved text editor styled (twentyhq#4033)

twentyhq#3998 resolved text editor styled

Co-authored-by: Charles Bochet <charles@twenty.com>

* fix: unwanted comment on graphQL input (twentyhq#4071)

* Fix delete with no result should not throw (twentyhq#4091)

* Fix delete with no result should not throw

* add logs

* Delete packages/twenty-server/src/database/typeorm/metadata/migrations/1708442904165-addOnDeleteActionToRelationMetadata.ts

* fix: sync and health (twentyhq#4095)

* fix: throw error if we try to create a migration without columnName

* fix: typeorm save for update breaking everything

* Fix workspace enum migration bug

* feat: create Settings/Accounts/Calendars page (twentyhq#4090)

* feat: create Settings/Accounts/Calendars page

Closes twentyhq#4059

* docs: add SettingsAccountsCalendars stories

* refactor: add SettingsNavigationDrawerItem component

* 4008 dont create a contact company if it matches the persons domain (twentyhq#4088)

* Add SettingsAccountsEmailsBlocklistInput story

* prevent contact creation from the same company

* add todo

* improvements

* Delete packages/twenty-front/src/modules/settings/accounts/components/__stories__/SettingsAccountsEmailsBlocklistInput.stories.tsx

* refactor

* modify after review

* improve code

* create utils

* fix

* Fix getAllByWorkspaceId to throw NotFoundException when no workspace member found

* fix after merge

* use map

* modify after review

* fix: workspace health undefined relation (twentyhq#4107)

* feat: create Settings/Accounts/Calendars/Calendar Settings page (twentyhq#4092)

* feat: create Settings/Accounts/Calendars/Calendar Settings page

Closes twentyhq#4063

* docs: add SettingsAccountsCalendarsSettings stories

* Fix developers url and remove webhook url error (twentyhq#4120)

Fix developers url + remove webhook url error

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Added beta tag in email (twentyhq#4098)

twentyhq#4040 added beta tag

* feat: add Calendar Settings section to Settings/Accounts/Calendars page (twentyhq#4104)

* feat: add Calendar Settings section to Settings/Accounts/Calendars page

Closes twentyhq#4060

* refactor: rename components

* feat: add Synchronization calendar settings (twentyhq#4111)

* feat: add Calendar Settings section to Settings/Accounts/Calendars page

Closes twentyhq#4060

* refactor: rename components

* feat: add Synchronization calendar settings

Closes twentyhq#4066

* Updated tasks inbox empty state wording (twentyhq#4121)

twentyhq#4078 change task empty text word

* Fix number csv import (twentyhq#4114)

fix number csv import

* 45 create billing core tables (twentyhq#4096)

* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table

* Add confirmation modal when deleting/ regenerating api keys, deleting webhook (twentyhq#4035)

* fix: confirmation modal style

* add confirmation modal when delete/ regenerating an api key

* add confirmation modal when deleting webhook

* fix: remove line break

* Update packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx

* Update packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx

* Update packages/twenty-front/src/pages/settings/developers/webhooks/SettingsDevelopersWebhookDetail.tsx

* Update packages/twenty-front/src/pages/settings/developers/webhooks/SettingsDevelopersWebhookDetail.tsx

* Update packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx

* Update packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx

---------

Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>

* Refactor/finish activities optimistic (twentyhq#4106)

* Finished optimistic effects

* Fixed tests

* Added unit test on useActivityConnectionUtils to prepare for refactor

* Fixed console.log

* feat: allow backend to rename field of custom object (twentyhq#4097)

* feat: allow backend to rename field of custom object

* feat: allow custom field label edition in Settings

Closes twentyhq#4080

* fix: avoid renaming standard fields

---------

Co-authored-by: Thaïs Guigon <guigon.thais@gmail.com>

* Add onDeleteAction to RelationMetadata (twentyhq#4100)

* Add onDeleteAction to relationMetadata

* rename to SET NULL

* fix migration

* fix migration

* fix after review

* feat: add Accounts List Card to Calendar Settings (twentyhq#4129)

Closes twentyhq#4061

* Fix server import case

* 3933 filter non work email from auto contact creation (twentyhq#4131)

* use isWorkEmail

* working

* improvement

* Refactor lodash import in create-companies-and-contacts.service.ts

* refactor lodash import

* Add writeLog for relation update sync metadata (twentyhq#4136)

* Add writeLog for relation update sync metadata

* fix health check

* Fix referential_constraints health check (twentyhq#4139)

* feat: add Contact Auto-Creation calendar settings (twentyhq#4132)

* feat: add Contact Auto-Creation calendar settings

Closes twentyhq#4065

* fix: fix wrong Section component import

* fix: fix wrong Toggle import

* feat: add Event Visibility calendar settings (twentyhq#4138)

Closes twentyhq#4064

* 46 add stripe product endpoint (twentyhq#4133)

* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table

* WIP: Add stripe config

* Add controller to get product prices

* Add billing service

* Remove unecessary package

* Simplify stripe service

* Code review returns

* Use nestjs param

* Rename subscription to basePlan

* Rename env variable

* Handle relations between same objects (twentyhq#4137)

* Handle relations between same objects

* Simplify conditions

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* 4020 timebox improve performances on messages read (twentyhq#4140)

* adding console.time to monitor queries time

* improve query by removing unnecessary JOIN

* improve queries by removing unnecessary JOINs

* improve queries by removing unnecessary JOINs

* remove console.time

* remove logs

* use groupBy from lodash

* modify SELECT

* Revert "use groupBy from lodash"

This reverts commit 852fd3c.

* use WorkspaceDataSourceModule

* WIP: New User Guide (twentyhq#3984)

* initial commit

* Theme setup on twenty-website package

* Left bar, Content done

* Content added, useDeviceType hook added

* useDeviceType file renamed

* Responsiveness introduced

* Mobile responsiveness fix

* TOC layout

* PR fixes

* PR changes 2

* PR changes #3

* 4150 i should be able to view my emails even if ive set my account visibility to metadata (twentyhq#4156)

* improve timeline messaging to allow users to view the threads to which they participated

* working

* improvement

* improvements

* improvements

* fix

* remove unnecessary type

* New folder structure for website (twentyhq#4159)

New folder structure

* Improved activity editor re-renders (twentyhq#4149)

* Refactor task count

* Fixed show page rerender

* Less rerenders and way better title and body UX

* Finished breaking down activity editor subscriptions

* Removed console.log

* Last console.log

* Fixed bugs and cleaned

* Fixed DeveloperSettings stories (twentyhq#4166)

* Fixed Developer Settings page Storybook.

* Remove unused stories

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* Remove usage of toSorted as it is not fully supported (twentyhq#4168)

* Website: markdown to release (twentyhq#4146)

* website: markdown to release

* remove Image.png

* fixed font weight

* Change folder structure

* remove react-markdown

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* Build cron for data seed demo (twentyhq#4142)

* Migrate command to cron

* Put back command using job as well

* Build service and module + move into folder

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* fix: forbid creation of objects or fields with certain characters or with forbidden keywords that clashes with pg_graphql (twentyhq#3957)

* fix: forbid creation of objects or fields with certain characters or with forbidden keywords that clashes with pg_graphql

* refactor: add a decorator for name validation and use it on fields

* feat: add Color calendar setting (twentyhq#4141)

* feat: add Color calendar setting

Closes twentyhq#4067

* fix: fix wrong imports

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* feat: add Display calendar settings (twentyhq#4164)

* feat: add Color calendar setting

Closes twentyhq#4067

* fix: fix wrong imports

* feat: add Display calendar settings

Closes twentyhq#4068

* feat: add 12h/24h in Format option labels

* fix tests

* Fix

* Fix

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* TWNTY-3968 - Fix and enhance storybook:pages tests (twentyhq#4072)

* Fix and enhance storybook:pages tests

Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>

* Fix and enhance storybook:pages tests

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>

* Add minor refactors

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>

* Revert temporary changes

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>

* Fix tests

* Fix tests duplicated locale

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Charles Bochet <charles@twenty.com>

* 47 add stripe checkout endpoint (twentyhq#4147)

* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table

* WIP: Add stripe config

* Add controller to get product prices

* Add billing service

* Remove unecessary package

* Simplify stripe service

* Code review returns

* Use nestjs param

* Rename subscription to basePlan

* Rename env variable

* Add checkout endpoint

* Remove resolver

* Merge controllers

* Fix security issue

* Handle missing url error

* Add workspaceId in checkout metadata

* 38 add billing webhook endpoint (twentyhq#4158)

* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table

* WIP: Add stripe config

* Add controller to get product prices

* Add billing service

* Remove unecessary package

* Simplify stripe service

* Code review returns

* Use nestjs param

* Rename subscription to basePlan

* Rename env variable

* Add checkout endpoint

* Remove resolver

* Merge controllers

* Fix security issue

* Handle missing url error

* Add workspaceId in checkout metadata

* Add BILLING_STRIPE_WEBHOOK_SECRET env variable

* WIP: add webhook endpoint

* Fix body parser

* Create Billing Subscription on payment success

* Set subscriptionStatus active on webhook

* Add useful log

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* feat: find duplicate objects init (twentyhq#4038)

* feat: find duplicate objects backend init

* refactor: move duplicate criteria to constants

* fix: correct constant usage after type change

* feat: skip query generation in case its not necessary

* feat: filter out existing duplicate

* feat: FE queries and hooks

* feat: show duplicates on FE

* refactor: should-skip-query moved to workspace utils

* refactor: naming improvements

* refactor: current record typings/parsing improvements

* refactor: throw error if existing record not found

* fix: domain -> domainName duplicate criteria

* refactor: fieldNames -> columnNames

* docs: add explanation to duplicate criteria collection

* feat: add person linkedinLinkUrl as duplicate criteria

* feat: throw early when bot id and data are empty

* refactor: trying to improve readability of filter criteria query

* refactor: naming improvements

* refactor: remove shouldSkipQuery

* feat: resolve empty array in case of empty filter

* feat: hide whole section in case of no duplicates

* feat: FE display list the same way as relations

* test: basic unit test coverage

* Refactor Record detail section front

* Use Create as input argument of findDuplicates

* Improve coverage

* Fix

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* MQ Facepaint introduced (twentyhq#4169)

* MQ Facepaint introduced

* Remove useDeviceType

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* feat: validate webhook URL (twentyhq#4144)

* feat: validate webhook URL

* fix: use existing util method

* Add return statement

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* feat: user can have multiple workspaces (backend) (twentyhq#4036)

* create user-workspace mapping

* user-workspace service and integration

* invite condition on sign-up/sign-in

* save/update defaultWorkspace on signup

* add unique decorator on user-workspace entity

* remove resolver permissions

* Fixes

* Fixes

* Fix tests

* Fixes

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* Refactor sign-up into its own service (twentyhq#4173)

* Refactor sign-up into its own service

* Fix tests

* TWNTY-3825 - ESLint rule: const naming (twentyhq#4171)

* ESLint rule: const naming

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: KlingerMatheus <klinger.matheus@gitstart.dev>

* Refactor according to review

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: KlingerMatheus <klinger.matheus@gitstart.dev>

* refactor: Reverts changes on `twenty-server`

Co-authored-by: KlingerMatheus <klinger.matheus@gitstart.dev>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: KlingerMatheus <klinger.matheus@gitstart.dev>

* Add linter to Chrome Extension (twentyhq#4044). (twentyhq#4174)

* feat: configure eslint rules by replicating those in the twenty-front package and introduce scripts for linting, formatting code and removing build output

* fix: ensure each file of the extension package satisfies linting rules and disable some rules where necessary

* fix: update relative imports to absolute imports throughout extension code with the defined tilde and at symbols

* fix: import the updated ui module from the front package to the chrome extension package to prevent eslint rules from breaking subject to the recent merged changes into main

* fix: commit the case change for files that were missed by Git in the earlier commits due to default configuration

* 3961-Notes-Relation-Field (twentyhq#3965)

* Label fix

* Remove semicolumn

* Fix broken layout

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* fix: prevent scroll to softfocus cell when hover (twentyhq#3990)

* Removed the boxes around fields on shows and side panel (twentyhq#4032)

twentyhq#3963 removed border and padding

Co-authored-by: Charles Bochet <charles@twenty.com>

* fix: set a specifc date to date field input on the story  (twentyhq#3919)

* fix: set a specifc date to date field input on the story and set the state on record store family selector

* test: add an interaction test to verify the specific date

* Feat currency type optimistic cache (twentyhq#3907)

* feat: currency type in optimisitc cache update

* Add test for optimisitc currency cache

* Refactor error message for currency filter to be more accurate

* Fix

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* Fix website build

* Fix website build

* Chrome Extension: Update logo and change default routes to those of Twenty prod (twentyhq#4046). (twentyhq#4172)

* fix: replace twenty logo in the png format with one in the svg format for better resolution

* fix: toggle the custom url switch to true if the local storage contains a server base url different from that of the env variable

* fix: update the front base url and the server base url to those of the production environment in the .env.example file

* fix: update README to add a step for changing env variables to those of the development environment for contributors or local testers

* Update docker-compose.mdx (twentyhq#4178)

Fixed syntax errors in the docker-compose
added step-by-step instructions

* Ignore defaultValue update for select fields (twentyhq#4193)

* Ignore defaultValue update for select fields

* Fix tests

* [messaging] clean orphan threads and messages after connected account deletion (twentyhq#4195)

* [messaging] add connected account associated data delete

* add threadCleanerService

* fix

* fix import

* add thread cleaner import

* remove log

* Fixed confirmation modal not closing after regenerating API key (twentyhq#4192)

Fixed modal not closing after regenerating API key

* 4026 create storybook tests for blocklist components (twentyhq#4185)

* Add SettingsAccountsEmailsBlocklistInput story

* Add SettingsAccountsEmailsBlocklistSection story

* Add SettingsAccountsEmailsBlocklistTable story

* Add SettingsAccountsEmailsBlocklistTableRow story

* wip

* add play

* add play

* add delete from blocklist test

* wip

* wip

* done

* Fixed favicon requests for empty domain names (twentyhq#4191)

* Fixed favicon requests for empty domain names

* Fixed the test case for undefined domain name

* Fix password too short issue (twentyhq#4200)

Add dependencies to hotscope key

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Fix demo workspace seed (twentyhq#4211)

* 4017 improve queries on messages write (twentyhq#4207)

* modify code to reduce nested loops and improve performances

* is working

* fix lastSyncHistoryId

* create new service to share it betweent partial sync and full sync

* update partial sync

* update batch limit

* renaming

* adding logs

* update logs

* update logs

* update logs

* delete messages if error while saving the participants

* refactoring

* improving logs

* update logs

* delete historyId if outdated

* fix: Extend regex in Linkedin Field to support LinkedIn school URL (twentyhq#4198)

* [messaging] fix empty history (twentyhq#4218)

* Add pagination to partial sync and add logs (twentyhq#4223)

* update gmail partial sync to add pagination

* adding logs

* update

* improve readability

* Update relation cascade on standard objects favorite, attachment, activityTargets (twentyhq#4227)

* 39 create subscription and success modale (twentyhq#4208)

* Init add choose your plan page component

* Update price format

* Add billing refund trial duration env variable

* Add billing benefits

* Add Button

* Call checkout endpoint

* Fix theme color

* Add Payment success modale

* Add loader to createWorkspace submit button

* Fix lint

* Fix dark mode

* Code review returns

* Use a resolver for front requests

* Fix 'create workspace' loader at sign up

* Fix 'create workspace' with enter key bug

* fix: design of technical documentation  (twentyhq#4231)

fixes design

* Fix nullable being set to null for text field (twentyhq#4239)

* Remove html from messages (twentyhq#4229)

* remove html

* remove html

* remove html from db

* 4209 speed up gmail full sync by using search params to query only the relevant emails (twentyhq#4213)

* create blocklist service

* blocklist is working on email import in full sync

* add log

* add blocklist to partial sync

* define rule for blocklist imports

* gmail filter is working

* correct typo

* fix bugs

* getCompanyNameFromDomainName

* renaming

* remove unused service

* add transaction

* TWNTY-3316 - Add tests for `modules/spreadsheet-import` (twentyhq#4219)

Add tests for `modules/spreadsheet-import`

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: RubensRafael <rubensrafael2@live.com>

* feat: apply RecordDetailSection style on RecordDuplicatesSection and … (twentyhq#4241)

feat: apply RecordDetailSection style on RecordDuplicatesSection and add stories

Closes twentyhq#3963, Closes twentyhq#4240

* feat: add Object Edit Settings section with Object preview (twentyhq#4216)

* feat: add Object Edit Settings section with Object preview

Closes twentyhq#3834

* fix: fix preview card stories

* test: improve getFieldDefaultPreviewValue tests

* test: add getFieldPreviewValueFromRecord tests

* test: add useFieldPreview tests

* refactor: rename and move components

* fix: restore RecordStoreDecorator

* feat: adjust navigation drawer design (twentyhq#4242)

Closes twentyhq#3969, Closes twentyhq#4240

* test: improve utils coverage (twentyhq#4230)

* test: improve utils coverage

* refactor: review - rename isDefined to isNonNullable, update tests and return statement

* [messaging] add better logs to messaging sync jobs (twentyhq#4245)

* Handle multiple orderBy sorting (twentyhq#4246)

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Add export as csv (twentyhq#4034)

* Add export as csv

Resolves 2183.

* collect over paginated data

* refactor

* add tests

* parameterize pageSize (limit)

* use pageInfo for onCompleted callback

* json column variable naming

* omit relations from csv exports

* Expose releases as an api (twentyhq#4247)

* Add error handling in GmailPartialSyncService (twentyhq#4248)

* Add error handling in GmailPartialSyncService

* improve typing

* Enable new record board and messaging for all workspaces except demo (twentyhq#4243)

* Enable new record board and messaging for all workspaces except demo

* Fix according to PR

* Added a 'Read documentation' button in the Developers tab in settings (twentyhq#4249)

* Remove Gate decorator IS_BLOCKLIST_ENABLED from BlocklistObjectMetadata (twentyhq#4250)

* Remove Gate decorator from BlocklistObjectMetadata

* check if blocklist is enabled

* wip

* done

* Fix enum defaultValue broken (twentyhq#4251)

* Fix enum defaultValue broken

* Fix

* Fix

* Fix default value being set to null when not provider to fieldMetadataUpdate

* Fix blocklist standard object being unhealthy (twentyhq#4255)

Fix blocklist standard object unhealthy

* Fix broken storybook tests on SettingsPreview

* Handle error 429 during partial sync (twentyhq#4258)

handle error 429

* Improve website github sync (twentyhq#4259)

* TWNTY-3942 - Enable Attachments on Custom Objects (twentyhq#4253)

* Enable Attachments on Custom Objects

Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* Revert changes to the client

Co-authored-by: v1b3m <vibenjamin6@gmail.com>

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* 41 update subscription when workspace member changes 2 (twentyhq#4252)

* Add loader and disabling on checkout button

* Add Stripe Subscription Item id to subscriptionItem entity

* Handle create and delete workspace members

* Update billing webhook

* Make stripe attribute private

* Fixing webhook error

* Clean migration

* Cancel subscription when deleting workspace

* Fix test

* Add freetrial

* Update navigate after signup

* Add automatic tax collection

---------

Co-authored-by: Swayam Vasavada <109085921+swayamvasavada@users.noreply.github.com>
Co-authored-by: rostaklein <r.klein@make.com>
Co-authored-by: Jérémy M <jeremy.magrin@gmail.com>
Co-authored-by: Weiko <corentin@twenty.com>
Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
Co-authored-by: martmull <martmull@hotmail.fr>
Co-authored-by: Charles Bochet <charles@twenty.com>
Co-authored-by: Thomas des Francs <tdesfrancs@gmail.com>
Co-authored-by: brendanlaschke <brendan.laschke@googlemail.com>
Co-authored-by: Pranav <pranavjoshi71619@gmail.com>
Co-authored-by: bosiraphael <71827178+bosiraphael@users.noreply.github.com>
Co-authored-by: Jonathanlemon <43302879+Jonathanlemon@users.noreply.github.com>
Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
Co-authored-by: Kanav Arora <kanavarora1515@gmail.com>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
Co-authored-by: Zoltán Völcsey <41576384+zvolcsey@users.noreply.github.com>
Co-authored-by: Thaïs <guigon.thais@gmail.com>
Co-authored-by: Aditya Pimpalkar <adipimpalkar@gmail.com>
Co-authored-by: Jeet Desai <52026385+jeet1desai@users.noreply.github.com>
Co-authored-by: Thomas Trompette <thomas.trompette@sfr.fr>
Co-authored-by: Thomas Trompette <thomast@twenty.com>
Co-authored-by: Anoop P <44577841+anoopw3bdev@users.noreply.github.com>
Co-authored-by: Aayush-23 <82582963+Aayush-23@users.noreply.github.com>
Co-authored-by: Mohamed Houssein Douici <douici1@gmail.com>
Co-authored-by: gitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com>
Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: KlingerMatheus <klinger.matheus@gitstart.dev>
Co-authored-by: Abdullah <125115953+mabdullahabaid@users.noreply.github.com>
Co-authored-by: AutoComput <help@autocomput.com>
Co-authored-by: Sohal Kumar Singh <68388983+sohalkumar@users.noreply.github.com>
Co-authored-by: Elton Goh Jun Hao <75515229+EltonGohJH@users.noreply.github.com>
Co-authored-by: Shreerang Patil <87227032+shree-1788@users.noreply.github.com>
Co-authored-by: RubensRafael <rubensrafael2@live.com>
Co-authored-by: Tate Thurston <tatethurston@gmail.com>
Co-authored-by: Shubham Pawar <82868470+srp-pawar@users.noreply.github.com>
  • Loading branch information
Show file tree
Hide file tree
Showing 1,008 changed files with 20,901 additions and 7,591 deletions.
29 changes: 28 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
module.exports = {
root: true,
extends: ['plugin:prettier/recommended'],
plugins: ['@nx', 'prefer-arrow', 'simple-import-sort', 'unused-imports'],
plugins: [
'@nx',
'prefer-arrow',
'simple-import-sort',
'unused-imports',
'unicorn',
],
rules: {
'func-style': ['error', 'declaration', { allowArrowFunctions: true }],
'no-console': ['warn', { allow: ['group', 'groupCollapsed', 'groupEnd'] }],
Expand Down Expand Up @@ -95,5 +101,26 @@ module.exports = {
},
rules: {},
},
{
files: ['**/constants/*.ts', '**/*.constants.ts'],
rules: {
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'variable',
format: ['UPPER_CASE'],
},
],
'unicorn/filename-case': [
'warn',
{
cases: {
pascalCase: true,
},
},
],
'@nx/workspace-max-consts-per-file': ['error', { max: 1 }],
},
},
],
};
20 changes: 10 additions & 10 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
{
"version": "0.2.0",
"resolveSourceMapLocations": ["${workspaceFolder}/**", "!**/node_modules/**"],
"configurations": [
{
"name": "twenty-server - dev debug",
"type": "node",
"request": "launch",
"name": "Server Debug",
"runtimeExecutable": "yarn",
"cwd": "${workspaceFolder}/server",
"runtimeArgs": [
"start:debug",
"--",
"--inspect-brk"
"nx",
"run",
"twenty-server:start:dev",
],
"console": "integratedTerminal",
"restart": true,
"protocol": "auto",
"port": 9229,
"autoAttachChildProcesses": true
"outputCapture": "std",
"internalConsoleOptions": "openOnSessionStart",
"console": "internalConsole",
"cwd": "${workspaceFolder}/packages/twenty-server/"
}
]
}
53 changes: 41 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ Below are some features we have implemented to date:

<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/visualise-customer-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/visualise-customer-light.png">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/index-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/index-light.png">
<img src="./packages/twenty-docs/static/img/visualise-customer-light.png" alt="Companies view" />
</picture>
</p>
Expand All @@ -81,18 +81,38 @@ Below are some features we have implemented to date:

<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/follow-your-deals-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/follow-your-deals-light.png">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/kanban-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/kanban-light.png">
<img src="./packages/twenty-docs/static/img/follow-your-deals-light.png" alt="Companies view" />
</picture>
</p>

## See rich notes tasks displayed in a timeline:
## Track deals effortlessly with the email integration:

<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/rich-notes-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/rich-notes-light.png">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/emails-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/emails-light.png">
<img src="./packages/twenty-docs/static/img/rich-notes-light.png" alt="Companies view" />
</picture>
</p>

## Tailor your data model to meet business needs:

<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/data-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/data-light.png">
<img src="./packages/twenty-docs/static/img/rich-notes-light.png" alt="Companies view" />
</picture>
</p>

## See rich notes displayed in a timeline:

<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/notes-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/notes-light.png">
<img src="./packages/twenty-docs/static/img/rich-notes-light.png" alt="Companies view" />
</picture>
</p>
Expand All @@ -101,19 +121,28 @@ Below are some features we have implemented to date:

<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/create-tasks-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/create-tasks-light.png">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/tasks-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/tasks-light.png">
<img src="./packages/twenty-docs/static/img/create-tasks-light.png" alt="Companies view" />
</picture>
</p>


## Navigate quickly through the app using keyboard shortcuts and search:

<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/shortcut-navigation-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/shortcut-navigation-light.png">
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/keyboard-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/keyboard-light.png">
<img src="./packages/twenty-docs/static/img/shortcut-navigation-light.png" alt="Companies view" />
</picture>
</p>

## Connect your CRM to all your tools through our APIs and Webhooks.

<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/api-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docs/static/img/api-light.png">
<img src="./packages/twenty-docs/static/img/shortcut-navigation-light.png" alt="Companies view" />
</picture>
</p>
Expand Down
9 changes: 8 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,10 @@
"@sentry/react": "^7.88.0",
"@sentry/tracing": "^7.99.0",
"@sniptt/guards": "^0.2.0",
"@stoplight/elements": "^7.16.2",
"@stoplight/elements": "^8.0.5",
"@swc/jest": "^0.2.29",
"@tabler/icons-react": "^2.44.0",
"@types/facepaint": "^1.2.5",
"@types/lodash.camelcase": "^4.3.7",
"@types/lodash.merge": "^4.6.7",
"@types/mailparser": "^3.4.4",
Expand All @@ -73,12 +74,14 @@
"danger-plugin-todos": "^1.3.1",
"dataloader": "^2.2.2",
"date-fns": "^2.30.0",
"date-fns-tz": "^2.0.0",
"debounce": "^2.0.0",
"deep-equal": "^2.2.2",
"docusaurus-node-polyfills": "^1.0.0",
"dotenv-cli": "^7.2.1",
"drizzle-orm": "^0.29.3",
"esbuild-plugin-svgr": "^2.1.0",
"facepaint": "^1.2.1",
"file-type": "16.5.4",
"framer-motion": "^10.12.17",
"googleapis": "105",
Expand All @@ -98,6 +101,7 @@
"jest-mock-extended": "^3.0.4",
"js-cookie": "^3.0.5",
"js-levenshtein": "^1.1.6",
"json-2-csv": "^5.4.0",
"jsonwebtoken": "^9.0.0",
"libphonenumber-js": "^1.10.26",
"lodash.camelcase": "^4.3.0",
Expand Down Expand Up @@ -155,6 +159,7 @@
"scroll-into-view": "^1.16.2",
"semver": "^7.5.4",
"sharp": "^0.32.1",
"stripe": "^14.17.0",
"ts-key-enum": "^2.0.12",
"tslib": "^2.3.0",
"tsup": "^8.0.1",
Expand Down Expand Up @@ -253,6 +258,7 @@
"eslint-plugin-react-refresh": "^0.4.4",
"eslint-plugin-simple-import-sort": "^10.0.0",
"eslint-plugin-storybook": "^0.6.15",
"eslint-plugin-unicorn": "^51.0.1",
"eslint-plugin-unused-imports": "^3.0.0",
"http-server": "^14.1.1",
"jest": "29.7.0",
Expand All @@ -274,6 +280,7 @@
"ts-jest": "^29.1.1",
"ts-loader": "^9.2.3",
"ts-node": "10.9.1",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.3.3",
"vite": "^5.0.0",
"vite-plugin-checker": "^0.6.2",
Expand Down
4 changes: 2 additions & 2 deletions packages/twenty-chrome-extension/.env.example
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
VITE_SERVER_BASE_URL=http://localhost:3000
VITE_FRONT_BASE_URL=http://localhost:3001
VITE_SERVER_BASE_URL=https://api.twenty.com
VITE_FRONT_BASE_URL=https://app.twenty.com
19 changes: 19 additions & 0 deletions packages/twenty-chrome-extension/.eslintrc-ci.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
module.exports = {
extends: ['./.eslintrc.cjs'],
rules: {
'no-console': 'error',
},
overrides: [
{
files: [
'.storybook/**/*',
'**/*.stories.tsx',
'**/*.test.ts',
'**/*.test.tsx',
],
rules: {
'no-console': 'off',
},
},
],
};
65 changes: 54 additions & 11 deletions packages/twenty-chrome-extension/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -1,18 +1,61 @@
// eslint-disable-next-line
const path = require('path');

module.exports = {
root: true,
env: { browser: true, es2020: true },
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@nx/react',
'plugin:react/recommended',
'plugin:react-hooks/recommended',
'plugin:storybook/recommended',
'../../.eslintrc.js',
],
ignorePatterns: ['dist', '.eslintrc.cjs'],
parser: '@typescript-eslint/parser',
plugins: ['react-refresh'],
plugins: ['react-hooks', 'react-refresh'],
ignorePatterns: ['!**/*', 'node_modules', 'dist'],
rules: {
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
'@nx/workspace-effect-components': 'error',
'@nx/workspace-no-hardcoded-colors': 'error',
'@nx/workspace-matching-state-variable': 'error',
'@nx/workspace-sort-css-properties-alphabetically': 'error',
'@nx/workspace-styled-components-prefixed-with-styled': 'error',
'@nx/workspace-no-state-useref': 'error',
'@nx/workspace-component-props-naming': 'error',

'react/no-unescaped-entities': 'off',
'react/prop-types': 'off',
'react/jsx-key': 'off',
'react/display-name': 'off',
'react/jsx-uses-react': 'off',
'react/react-in-jsx-scope': 'off',
'react/jsx-no-useless-fragment': 'off',
'react/jsx-props-no-spreading': [
'error',
{
explicitSpread: 'ignore',
},
],
},
}
overrides: [
{
files: ['*.ts', '*.tsx', '*.js', '*.jsx'],
parserOptions: {
project: ['packages/twenty-chrome-extension/tsconfig.*?.json'],
},
rules: {},
},
{
files: ['.storybook/main.@(js|cjs|mjs|ts)'],
rules: {
'storybook/no-uninstalled-addons': [
'error',
{ packageJsonLocation: path.resolve('../../package.json') },
],
},
},
{
files: ['.storybook/**/*', '**/*.stories.tsx', '**/*.test.@(ts|tsx)'],
rules: {
'no-console': 'off',
},
},
],
};
25 changes: 17 additions & 8 deletions packages/twenty-chrome-extension/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,47 +5,56 @@ This extension allows you to save `company` and `people` information to your twe
To install the extension in development mode with hmr (hot module reload), follow these steps.

- STEP 1: Clone the repository and run `yarn install` in the root directory.

- STEP 2: Once the dependencies installation succeeds, create a file with env variables by executing the following command in the root directory.

```
cp ./packages/twenty-chrome-extension/.env.example ./packages/twenty-chrome-extension/.env
```

- STEP 3: Now, execute the following command in the root directory to start up the development server on Port 3002. This will create a `dist` folder in `twenty-chrome-extension`.
- STEP 3 (optional): Update values of the environment variables to match those of your instance for `twenty-front` and `twenty-server`. If you want to work on your local machine with the default setup from `Twenty Docs`, replace everything in the .env file with the following.

```
VITE_SERVER_BASE_URL=http://localhost:3000
VITE_FRONT_BASE_URL=http://localhost:3001
```

- STEP 4: Now, execute the following command in the root directory to start up the development server on Port 3002. This will create a `dist` folder in `twenty-chrome-extension`.

```
yarn nx start twenty-chrome-extension
```

- STEP 4: Open Google Chrome and head to the extensions page by typing `chrome://extensions` in the address bar.
- STEP 5: Open Google Chrome and head to the extensions page by typing `chrome://extensions` in the address bar.

<p align="center">
<img src="../twenty-chrome-extension/public/readme-images/01-img-one.png" width="600" />
</p>

- STEP 5: Turn on the `Developer mode` from the top-right corner and click `Load unpacked`.
- STEP 6: Turn on the `Developer mode` from the top-right corner and click `Load unpacked`.

<p align="center">
<img src="../twenty-chrome-extension/public/readme-images/02-img-two.png" width="600" />
</p>

- STEP 6: Select the `dist` folder from `twenty-chrome-extension`.
- STEP 7: Select the `dist` folder from `twenty-chrome-extension`.

<p align="center">
<img src="../twenty-chrome-extension/public/readme-images/03-img-three.png" width="600" />
</p>

- STEP 7: This opens up the `options` page, where you must enter your API key.
- STEP 8: This opens up the `options` page, where you must enter your API key.

<p align="center">
<img src="../twenty-chrome-extension/public/readme-images/04-img-four.png" width="600" />
</p>

- STEP 8: Reload any LinkedIn page that you opened before installing the extension for seamless experience.
- STEP 9: Visit any individual or company profile on LinkedIn and click the `Add to Twenty` button to test.
- STEP 9: Reload any LinkedIn page that you opened before installing the extension for seamless experience.

- STEP 10: Visit any individual or company profile on LinkedIn and click the `Add to Twenty` button to test.

<p align="center">
<img src="../twenty-chrome-extension/public/readme-images/05-img-five.png" width="600" />
</p>

To install the extension in production mode without hmr (hot module reload), replace the command in STEP THREE with `yarn nx build twenty-chrome-extension`.
To install the extension in production mode without hmr (hot module reload), replace the command in STEP FOUR with `yarn nx build twenty-chrome-extension`. You may or may not want to execute STEP THREE based on your requirements.
Loading

0 comments on commit 04030b3

Please sign in to comment.