- Fixes storybook coverage command: the coverage directory path was
incorrect, but instead of failing `storybook:test --configuration=ci`,
it was hanging indefinitely.
- Switches back to `concurrently` to launch `storybook:static` and
`storybook:test` in parallel, which allows to use options to explicitly
kill `storybook:static` when `storybook:test` fails.
- Moves `storybook:test --configuration=ci` to its own command
`storybook:static:test`: used in the CI, and can be used locally to run
storybook tests without having to launch `storybook:dev` first.
- Creates command `storybook:coverage` and enables cache for this
command.
- Fixes Jest tests that were failing.
- Improves caching conditions for some tasks (for instance, no need to
invalidate Jest test cache if only Storybook story files were modified).
Closes#5097
- Uses "nx affected" to detect what projects need to be checked in the
current PR (for now, `ci-front` and `ci-server` workflows only).
- Caches results of certain tasks (`lint`, `typecheck`, `test`,
`storybook:build`) when a PR pipeline runs. The next runs of the same
PR's pipeline will then be able to reuse the PR's task cache to execute
tasks faster.
- Caches Yarn's cache folder to install dependencies faster in CI jobs.
- Rewrites the node modules cache/install steps as a custom, reusable
Github action.
- Distributes `ci-front` jobs with a "matrix" strategy.
- Sets common tasks config at the root `nx.json`. For instance, to
activate the `typecheck` task in a project, add `typecheck: {}` to its
`project.json` and it'll use the default config set in `nx.json` for the
`typecheck` task. Options can be overridden in each individual
`project.json` if needed.
- Adds "scope" tags to some projects: `scope:frontend`, `scope:backend`,
`scope:shared`. An eslint rule ensures that `scope:frontend` only
depends on `scope:frontent` or `scope:shared` projects, same for
`scope:backend`. These tags are used by `nx affected` to filter projects
by scope and generates different task cache keys according to the
requested scope.
- Enables checks for twenty-emails in the `ci-server` workflow.
Re-enables no-console eslint rule in stories and tests files:
- In stories, use `action` from '@storybook/addon-actions' or `fn` from
'@storybook/test' instead of console.
- In tests, console methods can be mocked like this:
`global.console.error = jest.fn()`.
Split from https://github.com/twentyhq/twenty/pull/4518
- Setup `@ui/*` as an internal alias to reference `twenty-ui/src`.
- Configures twenty-front to understand the `@ui/*` alias on development
mode, so twenty-ui can be hot reloaded.
- When building on production mode, twenty-front needs twenty-ui to be
built beforehand (which is automatic with the `dependsOn` option).
- Configures twenty-front to understand the `@ui/*` alias when launching
tests, so there is no need to re-build twenty-ui for tests.
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
Split from https://github.com/twentyhq/twenty/pull/4518
Related to #4766
Mutualizes eslint config between projects.
I didn't include `twenty-server` in this PR as this was causing too many
lint errors.
Closes#4556
- Renames some pages and components after discussion about terminology
with @thomtrp.
- Creates the Settings/Integrations/Database/Connection page.
Split from https://github.com/twentyhq/twenty/pull/4518
- Upgrades dependencies and applies automatic config migrations with the
command: `npx nx migrate nx` (see
https://nx.dev/nx-api/nx/documents/migrate)
- Fixes lint errors after upgrading `@typescript-eslint`
Note: it was not possible (for now) to migrate Nx to the latest stable
version (v18.2.1) because it upgrades Typescript to v5.4.3, which seems
to cause a bug on install when Yarn tries to apply its native patches.
Might be a bug on the Yarn side.
* feat: add calendar event attendees avatar group
Closes#4290
* fix: take CalendarEventAttendee data model into account
* feat: add Color code section to Calendar Settings (#4420)
Closes#4293
* Fix lint
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
* feat: add next event indicator to Show Page Calendar tab
Closes#4289
* feat: improve calendar animation
* refactor: add some utils and fix sorting edge case with full day
* refactor: rename CalendarCurrentEventIndicator to CalendarCurrentEventCursor
* fix: fix tests
* Fix lint
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
* feat: add event rows to Show Page Calendar tab
Closes#4287
* refactor: use time as events group key instead of ISO string for easier sorting
* feat: implement data model changes
* refactor: improve sorting
* feat: display record identifier field as first column in table
& forbid hiding and moving record identifier column
Closes#3303
* refactor: add availableTableColumnKeysSelectorScopeMap
* feat: show plus icon button for label identifier column and dropdown menu for other columns
* fix: use label identifier field value in RecordShowPage title
* refactor: remove availableColumnKeys selector
* refactor: review - compute label identifier logic in mapViewFieldsToColumnDefinitions + remove selectors
* fix: several fixes
* fix: fix board fields isVisible
* fix: fix board fields reordering
* fix: more board fields fixes
* fix: fix hiddenTableColumnsSelectorScopeMap
* refactor: apply relation optimistic effects on record update
Related to #3509
* refactor: remove need to pass relation id field to create and update mutations
* fix: fix tests
* fix: fix SingleEntitySelect glitch
* fix: fix usePersistField tests
* fix: fix wrong import after rebase
* fix: fix several tests
* fix: fix test types
* perf: apply record optimistic effects with cache.modify on mutation
Closes#3509
* refactor: return early when created records do not match filter
* fix: fix id generation on record creation
* fix: comment filtering behavior on record creation
* Fixed typing error
* refactor: review - use ??
* refactor: review - add variables in readFieldValueToSort
* docs: review - add comments for variables.first in triggerUpdateRecordOptimisticEffect
* refactor: review - add intermediary variable for 'not' filter in useMultiObjectSearchMatchesSearchFilterAndToSelectQuery
* refactor: review - add filter utils
* fix: fix tests
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
* feat: display label identifier table cell as chip with link to RecordShowPage
Closes#3502
* Fix test
---------
Co-authored-by: Charles Bochet <charles@twenty.com>
* feat: set field as custom object label identifier in Object Detail
Closes#3302
* feat: prevent disabling Object label identitifer field in back-end
* refactor: review - extract isLabelIdentifier variable
* fix: fix Relation field optimistic effect on Record update
Related to #3099
* Fix lint
* Fix
* fix
---------
Co-authored-by: Charles Bochet <charles@twenty.com>
* feat: display identifier field in Object Detail page for custom objects
Closes#3301
* fix: show Name as object label identifier by default
* Minor improvements
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
* feat: add link to relation filtered table in Record Show Page
Closes#3125
* refactor: use generateFindManyRecordsQuery for optimization
* Fixes from review
* Minor fixes
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
* fix: display label identifier field input in Show Page
Fixes#3003
* Cleaned a bit after comments
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
* feat: redirect to Plan Required page if subscription status is not active
Closes#2934
* feat: navigate to Plan Required in PageChangeEffect
* feat: add Twenty logo to Plan Required modal
* test: add Storybook story
* Fix lint
---------
Co-authored-by: Charles Bochet <charles@twenty.com>