Lucas Bordeau
03b3c8a67a
Refactored all FieldDisplay types for performance optimization ( #5768 )
...
This PR is the second part of
https://github.com/twentyhq/twenty/pull/5693 .
It optimizes all remaining field types.
The observed improvements are :
- x2 loading time improvement on table rows
- more consistent render time
Here's a summary of measured improvements, what's given here is the
average of hundreds of renders with a React Profiler component. (in our
Storybook performance stories)
| Component | Before (µs) | After (µs) |
| ----- | ------------- | --- |
| TextFieldDisplay | 127 | 83 |
| EmailFieldDisplay | 117 | 83 |
| NumberFieldDisplay | 97 | 56 |
| DateFieldDisplay | 240 | 52 |
| CurrencyFieldDisplay | 236 | 110 |
| FullNameFieldDisplay | 131 | 85 |
| AddressFieldDisplay | 118 | 81 |
| BooleanFieldDisplay | 130 | 100 |
| JSONFieldDisplay | 248 | 49 |
| LinksFieldDisplay | 1180 | 140 |
| LinkFieldDisplay | 140 | 78 |
| MultiSelectFieldDisplay | 770 | 130 |
| SelectFieldDisplay | 230 | 87 |
2024-06-12 18:36:25 +02:00
Weiko
ad6547948b
Activity timeline refactoring followup ( #5835 )
...
Following https://github.com/twentyhq/twenty/pull/5697 , addressing
review
2024-06-12 16:21:30 +02:00
Weiko
be96c68416
POC timeline activity ( #5697 )
...
TODO:
- remove WorkspaceIsNotAuditLogged decorators on activity/activityTarget
to log task/note creations
- handle attachments
- fix css and remove unnecessary styled components or duplicates
2024-06-11 18:53:28 +02:00
martmull
9f6a6c3282
5622 add a syncemail onboarding step ( #5689 )
...
- add sync email onboarding step
- refactor calendar and email visibility enums
- add a new table `keyValuePair` in `core` schema
- add a new resolved boolean field `skipSyncEmail` in current user
https://github.com/twentyhq/twenty/assets/29927851/de791475-5bfe-47f9-8e90-76c349fba56f
2024-06-05 18:16:53 +02:00
Félix Malfait
09bfb617b2
Right drawer to edit records ( #5551 )
...
This PR introduces a new side panel to edit records and the ability to
minimize the side panel.
The goal is leverage this sidepanel to be able to create records while
being in another show page.
I'm opening the PR for feedback since it involved refactoring and
therefore already touches a lot of files, even though it was quick to
implement.
<img width="1503" alt="Screenshot 2024-05-23 at 17 41 37"
src="https://github.com/twentyhq/twenty/assets/6399865/6f17e7a8-f4e9-4eb4-b392-c756db7198ac ">
2024-06-03 17:15:05 +02:00
Abdullah
cfd83d6b8e
[UI] Remove theme constants from twenty-front and use the ones exported from twenty-ui. ( #5558 )
...
Some parts of the Frontend used theme constants exported from
`modules/ui` while other parts used theme constants exported from
`twenty-ui`.
This PR centralizes theme constants by removing them from `modules/ui`
completely.
2024-05-25 16:09:25 +02:00
Abdullah
b8eef21343
[UI] Extract our ColorSample and Tag components from twenty-front to twenty-ui. ( #5543 )
...
Two more components extracted out of twenty-front: `ColorSample` and
`Tag`.
2024-05-23 07:46:31 +02:00
Abdullah
d1cbd709bd
Extract typography components from twenty-front to twenty-ui. ( #5466 )
...
Removed the following components from twenty-front and moved them to
twenty-ui.
- H1Title.
- H2Title.
- H3Title.
Moving components in smaller chunks to ease the process of resolving
conflicts.
<img width="1255" alt="image"
src="https://github.com/twentyhq/twenty/assets/125115953/a3953659-5dfd-4d03-a6de-50b064129d55 ">
Co-authored-by: Charles Bochet <charles@twenty.com >
2024-05-22 10:52:35 +02:00
Thaïs
5128ea3ffb
fix: fix storybook build script not found by Chromatic ( #5235 )
2024-05-02 16:15:36 +02:00
bosiraphael
907f0a1ea6
Add feature flag gate on calendar settings dropdown and fix queries ( #5221 )
...
- Add feature flag gate on calendar settings dropdown
- Fix find many messages
- Fix connected accounts settings
2024-04-30 14:12:48 +02:00
Charles Bochet
6a14b1c6d6
Fix tasks ( #5199 )
...
## Query depth deprecation
I'm deprecating depth parameter in our graphql query / cache tooling.
They were obsolete since we introduce the possibility to provide
RecordGqlFields
## Refactor combinedFindManyRecordHook
The hook can now take an array of operationSignatures
## Fix tasks issues
Fix optimistic rendering issue. Note that we still haven't handle
optimisticEffect on creation properly
2024-04-29 23:33:23 +02:00
gitstart-app[bot]
c946572fde
TWNTY-4203 - Improve Email Thread Visibility with Collapse/Expansion Rules ( #5202 )
...
### Description
Improve Email Thread Visibility with Collapse/Expansion Rules
### Refs
#4203
### Demo
https://github.com/twentyhq/twenty/assets/140154534/ece1d783-57ef-45c9-9895-3b4b0e02b9e2
Fixes #4203
---------
Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com >
2024-04-29 18:10:42 +02:00
Pacifique LINJANJA
627a6bda29
Update twenty-front commands ( #4667 )
...
# This PR
- Moves dev and ci scripts to the `project.json` file in the
twenty-front package
- Adds a project.json file in the root of the project with the main
start command that start both twenty-server and twenty-front
applications concurrently
- Updates the script command of the root project with the start:prod
command (replacing the start command which will be used in dev with the
help of nx)
- Add a start:prod command in the twenty-front app, replacing the start
command (now used for dev purpose)
Issue ref #4645
@charlesBochet @FelixMalfait please let me know how can I improve it
---------
Co-authored-by: Thaïs Guigon <guigon.thais@gmail.com >
2024-04-17 18:06:02 +02:00
Thaïs
b6d0b8a895
refactor: move Checkmark, Avatar, Chip and Tooltip to twenty-ui ( #4946 )
...
Split from https://github.com/twentyhq/twenty/pull/4518
Part of #4766
2024-04-15 12:05:06 +02:00
bosiraphael
c0b3a8715f
4810 display participants in the right drawer of the calendar event ( #4896 )
...
Closes #4810
- Introduces a new component `ExpandableList` which uses intersection
observers to display the maximum number of elements possible
2024-04-12 10:33:46 +02:00
Charles Bochet
f1cc1c60e0
Fix ID type being used in place of UUID in graphql and metadata queries ( #4905 )
...
We have recently discovered that we were using ID type in place of UUID
type in many place in the code.
We have merged #4895 but this introduced bugs as we forgot to replace it
everywhere
2024-04-10 11:33:17 +02:00
Thaïs
8ae6af6bd7
refactor: move createState to twenty-ui ( #4716 )
...
Split from https://github.com/twentyhq/twenty/pull/4518
Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com >
2024-04-01 13:22:51 +02:00
Thaïs
5d07b6347e
refactor: move Tabler Icon exports to twenty-ui ( #4727 )
...
Split from https://github.com/twentyhq/twenty/pull/4518
2024-04-01 13:15:47 +02:00
Charles Bochet
02673a82af
Feat/put target object identifier on use activities ( #4682 )
...
When writing to the normalized cache (record), it's crucial to use _refs
for relationships to avoid many problems. Essentially, we only deal with
level 0 and generate all fields to be comfortable with their defaults.
When writing in queries (which should be very rare, the only cases are
prefetch and the case of activities due to the nested query; I've
reduced this to a single file for activities
usePrepareFindManyActivitiesQuery 🙂 ), it's important to use queryFields
to avoid bugs. I've implemented them on the side of query generation and
record generation.
When doing an updateOne / createOne, etc., it's necessary to distinguish
between optimistic writing (which we actually want to do with _refs) and
the server response without refs. This allows for a clean write in the
optimistic cache without worrying about nesting (as the first point).
To simplify the whole activities part, write to the normalized cache
first. Then, base queries on it in an idempotent manner. This way,
there's no need to worry about the current page or action. The
normalized cache is up-to-date, so I update the queries. Same idea as
for optimisticEffects, actually.
Finally, I've triggered optimisticEffects rather than the manual update
of many queries.
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2024-04-01 13:12:37 +02:00
bosiraphael
fefa37b300
4488 connect calendar tab to backend ( #4624 )
...
* create states and hooks
* implement fetch more records
* add empty state
* update types
* fix error
* add fetchmoreloader and add scroll to container
* fix visibility in calendarEventFragment
* fix fetchMoreRecords
* update TIMELINE_CALENDAR_EVENTS_DEFAULT_PAGE_SIZE
* add test
* modify empty state subtitle
* replace entity by activityTargetableObject
* create useCustomResolver hook
* refactor
* refactoring
* use generic component
* rename FetchMoreLoader
* remove deprecated states and hooks
* fix typing
* update typing
* update error message
* renaming
* improve typing
* fix bug on contact creation from same company
2024-03-26 14:50:32 +01:00
Charles Bochet
cfb0cce9b8
Refactor Views by cleaning the code, relying on apolloCache and improving performances ( #4516 )
...
* Wip refactoring view
* Post merge conflicts
* Fix review
* Add create view capability
* Fix create object missing view
* Fix tests
2024-03-20 14:21:58 +01:00
Lucas Bordeau
9f6c578a46
Added context ( #4557 )
2024-03-18 17:13:32 +01:00
gitstart-app[bot]
872fb2bd49
TWNTY-4450 - Add tests for /modules/activities/emails ( #4520 )
...
* Add tests for `/modules/activities/emails`
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com >
* Fix tests
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com >
* Remove temporary changes
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com >
---------
Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com >
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com >
2024-03-18 17:10:07 +01:00
Charles Bochet
1cc8edd016
Fix tests and linter
2024-03-15 19:14:57 +01:00
Thaïs
38f28de4a6
feat: open event details drawer on event row click ( #4464 )
...
* feat: open event details drawer on event row click
Closes #4294
* feat: review - display Calendar Event details Inline Cells in readonly mode
* fix: fix calendar event field values not being set
* chore: review - reactivate no-extra-boolean-cast eslint rule
2024-03-15 17:37:36 +01:00
gitstart-twenty
c083bb15cd
First batch of modules/activities tests ( #4446 )
...
Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com >
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Matheus <matheus_benini@hotmail.com >
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com >
2024-03-15 16:32:06 +01:00
Hyunsu Joo
e8e5af6fcb
fix: Close the email side panel upon clicking an open email thread ( #4329 )
...
* fix: state consistency issue while closing the email thread right drawer (#4205 )
* Refactored to use useRecoilCallback in RightDrawer open/close hook
* - registered an email drawer click outside callback to memorize the thread id when drawer was closed
- added a state to memorize then event that triggered right drawer close
- added a predicate that checks if event that close email thread right drawer is not the same that the open email thread click event AND that the thread that we want to open is not the thread that is just being closed.
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2024-03-14 18:11:27 +01:00
Lucas Bordeau
581dfafe11
Renamed nullable utils into isDefined and isUndefinedOrNull ( #4402 )
...
* Renamed nullable utils into isDefined and isUndefinedOrNull
2024-03-11 14:28:57 +01:00
Charles Bochet
86c0f311f5
Introduce ComponentState ( #4386 )
...
* Proof of concept ComponentState
* Migrate to createState and createFamilyState
* Refactor
* Fix
* Fix tests
* Fix lint
* Fix tests
* Re-enable coverage
2024-03-09 11:31:00 +01:00
gitstart-app[bot]
17511be0cf
TWNTY-3794 - ESLint rule: only take explicit boolean predicates in if statements ( #4354 )
...
* ESLint rule: only take explicit boolean predicates in if statements
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br >
* Merge main
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br >
* Fix frontend linter errors
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br >
* Fix jest
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br >
* Refactor according to review
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br >
* Refactor according to review
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br >
* Fix lint on new code
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br >
---------
Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com >
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br >
2024-03-09 10:48:19 +01:00
gitstart-app[bot]
f543191552
TWNTY-3825 - ESLint rule: const naming ( #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 >
2024-02-25 13:52:48 +01:00
bosiraphael
917fc5bd4d
3811 add accounts loader ( #3829 )
...
* rename exports
* rename exports
* fix css
* done
* updating image
2024-02-09 15:29:11 +01:00
bosiraphael
2ba9a209e8
3804 use email visibility to display only the shared information frontend ( #3875 )
...
* create and use component
* visibility working
* Fix click behavior for email thread previews
* Add dynamic styling to EmailThreadPreview component
* refactor to respect the convention
2024-02-08 17:49:29 +01:00
bosiraphael
3831ddc002
3803 use email visibility to display only the shared information backend ( #3871 )
...
* update dto
* wip
* compute thread visibility
* fix bugs
* fix bug
* improve typing
* working
* update according to comments
* use string
2024-02-07 16:35:19 +01:00
Thomas Trompette
8816b7fb31
Fetch viewable thread from apollo cache ( #3783 )
...
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-02-02 14:41:00 +01:00
Thomas Trompette
c6c50180b7
Add animation during email message opening ( #3774 )
...
* Add animation while message opening
* Set isDisplayed as always true
---------
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-02-02 14:37:46 +01:00
Weiko
142affbeea
[messaging] reorder messages desc to asc ( #3755 )
2024-02-01 15:28:00 +01:00
bosiraphael
bd5d930be2
3706 add email loader ( #3731 )
...
* add images
* update component
* wip
* add loader cntainer
* wip
* Loader is working
* fix color and keyframes
* change loading message for threads
2024-02-01 10:15:41 +01:00
Thomas Trompette
389c263e2e
Design fixes + hide email tab if not a company or a person ( #3720 )
...
Design fixes + hide email tab
Co-authored-by: Thomas Trompette <thomast@twenty.com >
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2024-01-31 16:55:04 +01:00
bosiraphael
7d898f89a9
3696 add emails tab empty state on shows ( #3702 )
...
* empty inbox
* fix No Files alignment
* add animation when exiting the screen
* update calendar settings to be singular
2024-01-31 12:18:47 +01:00
Thomas Trompette
9597b1ae41
Avoid fetching more emails when first query loading ( #3709 )
...
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-01-31 10:25:22 +01:00
bosiraphael
8b9d62e425
3681 avatars are not appearing in the messages and people name should be bold ( #3692 )
...
* update font weight
* fix picture not appearing
2024-01-30 17:46:25 +01:00
Thomas Trompette
1838d8e6fb
Use scoped recoil state for email thread page ( #3699 )
...
Use scoped recoild state for email thread page
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-01-30 17:08:34 +01:00
Thomas Trompette
511627ccb8
Fix count avatar color + align thread preview items ( #3695 )
...
Fix count avatar and align items
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-01-30 15:01:12 +01:00
Thomas Trompette
84b6bea2b9
Split back fetch more loader for record table and emails ( #3693 )
...
* Split back fetch more loader
* Rename loader
---------
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-01-30 14:50:33 +01:00
bosiraphael
a012ba1087
Fix message opening ( #3687 )
...
* fix
* improve styling so we can close the message by clicking on the whole header
* fix line overflowing
* fix
2024-01-30 11:56:26 +01:00
Thomas Trompette
96bcddc056
Add participant avatars + remove tbody from fetchMore loader ( #3679 )
...
* Add participant avatars + remove tbody from fetchMore loader
* Update sender names
---------
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-01-30 10:47:15 +01:00
bosiraphael
c5ea2dfe1e
3675 inbox count is wrong in emailthreads ( #3677 )
...
* add type
* query total number of threads
* graphql data generate
* wip
* wip
* Fix fetch more
* fix
---------
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-01-29 18:23:09 +01:00
Thomas Trompette
64d0e15ada
Put back timeline thread page size const ( #3676 )
...
Put timeline thread page size const
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-01-29 15:43:48 +01:00
Thomas Trompette
9da9d1e3bd
Build infinite scroll for email threads ( #3666 )
...
* Use recoil state for page info
* Remove memoization
* Remove right drawer fetch more loader
---------
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-01-29 15:28:28 +01:00