Commit Graph

233 Commits

Author SHA1 Message Date
EYHN 78ce30db69 fix(core): fix editor sidebar (#5965) 2024-02-29 13:59:20 +00:00
regischen d1e6b23e1a feat: bump blocksuite (#5953) 2024-02-29 14:33:50 +08:00
DarkSky 3432f355b0 feat: backend module awareness & optional request (#5909) 2024-02-28 08:29:37 +00:00
LongYinan 9e09166452 build: fix selfhost config (#5930) 2024-02-28 04:17:29 +00:00
Peng Xiao a0364dd4ea fix(core): minor page info style issues (#5935) 2024-02-28 03:45:51 +00:00
Peng Xiao 148807879b refactor(component): use react-transition-state to simplify exit animation (#5923)
## **User description**
use react-transition-state to simplify exit animation

___

## **Type**
enhancement

___

## **Description**
- Integrated `react-transition-state` for managing animations in `ResizePanel` and `CMDKModal` components, simplifying the code and improving maintainability.
- Introduced a shared animation timeout variable to standardize animation durations across components.
- Added `react-transition-state` to dependencies to enable the new animation handling.

___

## **Changes walkthrough**
<table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
      <summary><strong>resize-panel.tsx</strong><dd><code>Integrate `react-transition-state` for Resize Panel Animations</code></dd></summary>
<hr>

packages/frontend/component/src/components/resize-panel/resize-panel.tsx

<li>Introduced <code>useTransition</code> hook from <code>react-transition-state</code> for managing <br>animations.<br> <li> Added a constant for animation timeout and applied it to the <br>transition.<br> <li> Utilized the transition state to toggle the open state of the resize <br>panel.<br>

</details>

  </td>
  <td><a href="https:/toeverything/AFFiNE/pull/5923/files#diff-a4d6e633862f63f97c167ff41ba62aff8aebf3e3b2f6e7ce13d5a0e22e8ff287">+12/-0</a>&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
      <summary><strong>modal.css.ts</strong><dd><code>Use Variable for Animation Timeout in Modal CSS</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

packages/frontend/core/src/components/pure/cmdk/modal.css.ts

<li>Created a variable for animation timeout.<br> <li> Updated animation durations to use the new timeout variable.<br>

</details>

  </td>
  <td><a href="https:/toeverything/AFFiNE/pull/5923/files#diff-ba8935611b9c1695153d92d08ecb0f7dac73a6197f54ccda5a6e791902cd651d">+6/-3</a>&nbsp; &nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
      <summary><strong>modal.tsx</strong><dd><code>Simplify CMDK Modal Animation with `react-transition-state`</code></dd></summary>
<hr>

packages/frontend/core/src/components/pure/cmdk/modal.tsx

<li>Replaced custom animation state management with <code>useTransition</code> hook.<br> <li> Removed old animation state logic and simplified the component.<br> <li> Added animation timeout variable and applied it to the transition.<br>

</details>

  </td>
  <td><a href="https:/toeverything/AFFiNE/pull/5923/files#diff-ab3fe66c9b1d3a691fafd1aebc9988e840fedfcd09b5b89570838a5a2a9469c9">+13/-33</a>&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
      <summary><strong>package.json</strong><dd><code>Add `react-transition-state` Dependency</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

packages/frontend/core/package.json

- Added `react-transition-state` as a dependency.

</details>

  </td>
  <td><a href="https:/toeverything/AFFiNE/pull/5923/files#diff-23e0e5dc0ceb004a0a5d3d13e7d00545de7487535ca0e5eab4c5047f1e24eff0">+1/-0</a>&nbsp; &nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

>  **PR-Agent usage**:
>Comment `/help` on the PR to get a list of all available PR-Agent tools and their descriptions
2024-02-27 14:55:33 +00:00
EYHN 606397e319 feat(core): workbench system (#5837) 2024-02-27 04:14:07 +00:00
EYHN 5cd488fe1d refactor(core): remove collection atom (#5832) 2024-02-27 03:50:56 +00:00
EYHN ad9b0303c4 refactor(core): refactor atom to use di (#5831)
To support multiple instances, this PR removes some atoms and implements them using the new DI system.

removed atom

- `pageSettingsAtom`
- `currentPageIdAtom`
- `currentModeAtom`
2024-02-27 03:50:53 +00:00
Peng Xiao 2295685590 fix: page info styles (#5910)
fix inconsistent styles compared to the one defined in figma
fix https://github.com/toeverything/AFFiNE/issues/5904
fix https://github.com/toeverything/AFFiNE/issues/5903
2024-02-26 14:11:24 +00:00
JimmFly 0be62d892d refactor(core): use custom scrollbar for editor and adjust shared page style (#5752)
Close TOV-481
- Use a custom scrollbar component for editor
- Modified the header of the share page and added a new footer
2024-02-26 08:54:52 +00:00
LongYinan ae41c6c544 chore: bump all dependencies (#5891) 2024-02-23 09:37:14 +00:00
JimmFly 815ddd3778 chore: replace pricing plan link (#5886)
close TOV-609
2024-02-23 08:28:24 +00:00
Whitewater 9692a120a0 chore: filter out edgeless content from page preview (#5607)
Co-authored-by: EYHN <cneyhn@gmail.com>
2024-02-23 08:16:26 +00:00
Whitewater 228b0d789d feat: add shared page filter to all pages (#5540)
Co-authored-by: EYHN <cneyhn@gmail.com>
2024-02-23 16:07:13 +08:00
Peng Xiao 745110c799 fix: page info ui issue on journal page (#5887) 2024-02-23 07:55:44 +00:00
Peng Xiao bef72029a0 fix: keyboard shortcut style in cmdk (#5882)
![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/7eb2fa93-675a-43a6-8db4-9681fbbd1406.png)
2024-02-23 06:29:46 +00:00
JimmFly 4ea4a2d25f feat(core): support create cloud workspace (#5771)
close TOV-475

has not logged:

https://github.com/toeverything/AFFiNE/assets/102217452/b9aa2806-7dbd-4235-895d-5b27effb5831

 has logged :

https://github.com/toeverything/AFFiNE/assets/102217452/259a1c35-c6ab-4a52-9e03-4438ca64e620

client has not logged:

https://github.com/toeverything/AFFiNE/assets/102217452/af6ef528-6fb8-4a27-842f-00c9669afcb2
2024-02-23 06:18:25 +00:00
LongYinan c88998678e feat: add paragraph when clicking end area (#5869)
Close [TOV-442](https://linear.app/affine-design/issue/TOV-442/结尾是非编辑yuan素时,无法在最底部添加block)
2024-02-22 09:54:17 +00:00
Peng Xiao 2df8f29b64 refactor(core): use fractional indexing for sorting (#5809)
use https://github.com/rocicorp/fractional-indexing to enable better sorting logic for crdt app
2024-02-22 09:38:00 +00:00
Peng Xiao 372b4da884 test(core): add tests for page info ui (#5769)
![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/64419f79-46e8-4171-b853-5908841f827a.png)
2024-02-22 09:37:55 +00:00
Peng Xiao bb8e601f82 feat(core): tags inline editor (#5748)
tags inline editor and some refactor

<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/T2klNLEk0wxLh4NRDzhk/439da1e3-30a9-462a-b7b4-c8e7c3b5ef17.mp4">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/T2klNLEk0wxLh4NRDzhk/439da1e3-30a9-462a-b7b4-c8e7c3b5ef17.mp4">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/439da1e3-30a9-462a-b7b4-c8e7c3b5ef17.mp4">Kapture 2024-01-31 at 23.29.11.mp4</video>

fix AFF-467
fix AFF-468
fix AFF-472
fix AFF-466
2024-02-22 09:37:50 +00:00
Peng Xiao 546d96c5c9 feat(core): workspace properties setting (#5739)
the property settings in workspace settings
2024-02-22 09:37:46 +00:00
EYHN 0fff5588e6 fix(core): disable sidebar user select (#5862)
close #5846
2024-02-22 07:58:14 +00:00
Umar Faiz f2c5786dd0 fix(core): the pitch zooming function incorrectly zooms the toolbar (#5456)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2024-02-22 15:04:33 +08:00
Peng Xiao 58ea2fbc4c fix(core): editor container grow to full height (#5743) 2024-02-22 06:20:40 +00:00
Peng Xiao a120eb90ab fix(core): journal display on cmdk (#5723)
![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/01d2c2ec-cfdd-4c90-9616-606e4a473cc0.png)
2024-02-22 06:09:18 +00:00
Peng Xiao d97304e9eb feat(core): page info ui (#5729)
this PR includes the main table view in the page detail page
2024-02-22 05:58:15 +00:00
Ayush Agrawal a01f0d86a5 fix: css style should not apply on nested editor's viewport (#5859) 2024-02-22 10:46:16 +08:00
JimmFly c353b0d30f chore: replace ambiguous "page" with "doc" (#5761)
close TOV-532
2024-02-21 12:47:17 +00:00
Ayush Agrawal 11b3184537 feat: blocksuite integration for pageMode & pageUpdatedAt (#5849)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2024-02-21 15:03:02 +08:00
Cats Juice 3fe9d834de feat(core): replace page filter, journal's date-picker with new one (#5675) 2024-02-20 13:53:41 +00:00
JimmFly 876b85304e feat(core): add loading to quick search modal (#5785)
close AFF-285

add `useSyncEngineStatus` hooks
add loading style

<img width="977" alt="test1" src="https://github.com/toeverything/AFFiNE/assets/102217452/e8bf6714-e42b-4adf-a279-341ef5f5cfc0">
2024-02-20 13:05:22 +00:00
JimmFly 3792506b09 feat(core): add history tips modal (#5733)
close TOV-459 TOV-503

https://github.com/toeverything/AFFiNE/assets/102217452/9cbfaf35-bc7b-4275-94be-6e777447ef11
2024-02-20 12:50:55 +00:00
JimmFly 4068e7aeff feat(core): add starAFFiNE and issueFeedback modal (#5718)
close TOV-482

https://github.com/toeverything/AFFiNE/assets/102217452/da1f74bc-4b8d-4d7f-987d-f53da98d92fe
2024-02-20 12:50:51 +00:00
Ayush Agrawal 6fad241350 feat: bump blocksuite (#5845) 2024-02-20 20:49:41 +08:00
JimmFly a554c8aabe fix(core): match page preview and page title in page list (#5840)
close TOV-578
2024-02-20 09:27:23 +00:00
Adithyan afe59a864d feat: Duplicate page in page list and clone naming improvements (#5818) 2024-02-20 16:44:25 +08:00
Muhammad Arsil 1eb317d8fa fix: cards overlapping issue (#5727)
Co-authored-by: EYHN <cneyhn@gmail.com>
2024-02-20 16:27:43 +08:00
Whitewater 1ceaf87a86 chore: skip sync when offline (#5786) 2024-02-19 10:22:22 +08:00
Peng Xiao d1c4e6141a refactor(component): cmdk ordering (#5722)
Replace internal CMDK command filtering/sorting logic.
The new implementation includes the following for command scoring:
- categories weights
- highlighted fragments
- original command score value

The new logic should be much cleaner and remove some hacks in the original implementation.

Not sure if this is optimal yet. Could be changed later.

fix https://github.com/toeverything/AFFiNE/issues/5699
2024-02-16 13:20:24 +00:00
Flrande 2e3ffeced9 feat: bump blocksuite (#5812) 2024-02-08 08:18:03 +08:00
DarkSky 25e8a2a22f feat: sync client versioning (#5645)
after this pr, server will only accept client that have some major version
the client version <0.12 will be rejected by the server, >= 0.12 can receive outdated messages and notify users
2024-02-05 08:43:50 +00:00
LongYinan 899528dcfd fix(core): load fonts from selfhost url (#5789) 2024-02-02 14:41:06 +00:00
LongYinan 8f4b4e20ab fix(core): typecheck after jotai upgraded (#5779) 2024-02-01 16:10:14 +00:00
Peng Xiao 7d951a975f fix(core): replace most --affine with cssVar (#5728)
using a [babel plugin](https://gist.github.com/pengx17/49e24ae8a5a609bdaff122ee8c679d1c) to transform all var(--affine-xxx) to cssVar

Some issues:
- tried ast-grep but it seems to be not easy to add imports conditionally
- current work does not work well with ts with types because babel will strip them out
2024-02-01 09:33:11 +00:00
Joooye_34 338c3001b0 feat: support sign-in with subscription coupon (#5768) 2024-02-01 08:43:47 +00:00
liuyi 26db1d436d refactor(server): server errors (#5741)
standardize the error raising in both GraphQL Resolvers and Controllers.

Now, All user aware errors should be throwed with `HttpException`'s variants, for example `NotFoundException`.

> Directly throwing `GraphQLError` are forbidden.
The GraphQL errorFormatter will handle it automatically and set `code`, `status` in error extensions.

At the same time, the frontend `GraphQLError` should be imported from `@affine/graphql`, which introduce a better error extensions type.

----
controller example:
```js
@Get('/docs/${id}')
doc() {
  // ...
  // imported from '@nestjs/common'
  throw new NotFoundException('Doc is not found.');
  // ...
}
```
the above will response as:
```
status: 404 Not Found
{
  "message": "Doc is not found.",
  "statusCode": 404,
  "error": "Not Found"
}
```

resolver example:
```js
@Mutation()
invite() {
  // ...
  throw new PayloadTooLargeException('Workspace seats is full.')
  // ...
}
```

the above will response as:
```
status: 200 Ok
{
  "data": null,
  "errors": [
    {
      "message": "Workspace seats is full.",
      "extensions": {
        "code": 404,
        "status": "Not Found"
      }
    }
  ]
}
```

for frontend GraphQLError user-friend, a helper function introduced:

```js
import { findGraphQLError } from '@affine/graphql'

fetch(query)
  .catch(errOrArr => {
    const e = findGraphQLError(errOrArr, e => e.extensions.code === 404)
    if (e) {
      // handle
    }
})
```
2024-01-31 08:43:03 +00:00
Cats Juice 6b350b1735 feat(core): append to today's joruanl via CMDK (#5692) 2024-01-30 23:08:25 +08:00
EYHN 329fc19852 refactor(infra): migrate to new infra (#5565) 2024-01-30 07:16:39 +00:00