Commit Graph

86 Commits

Author SHA1 Message Date
EYHN
96c67afc11 fix(core): catch auth error (#6128) 2024-03-15 03:45:23 +00:00
Peng Xiao
dd9a253772 feat(core): add split view to experimental features settings (#6093) 2024-03-14 05:13:04 +00:00
regischen
fddbb426a6 feat: bump blocksuite (#6078) 2024-03-13 17:04:21 +08:00
liuyi
fb3a0e7b8f refactor(server): auth (#5895)
Remove `next-auth` and implement our own Authorization/Authentication system from scratch.

## Server

- [x] tokens
  - [x] function
  - [x] encryption

- [x] AuthController
  - [x] /api/auth/sign-in
  - [x] /api/auth/sign-out
  - [x] /api/auth/session
  - [x] /api/auth/session (WE SUPPORT MULTI-ACCOUNT!)

- [x] OAuthPlugin
  - [x] OAuthController
  - [x] /oauth/login
  - [x] /oauth/callback
  - [x] Providers
    - [x] Google
    - [x] GitHub

## Client

- [x] useSession
- [x] cloudSignIn
- [x] cloudSignOut

## NOTE:

Tests will be adding in the future
2024-03-12 10:00:09 +00:00
EYHN
7c76c25a9c refactor(core): new back&forward button base on workbench (#6012)
# feature:

## In Browser:
- hidden back&forward button in sidebar.
- back and forward is equal with `window.history.back()` `window.history.forward()`

## In Desktop:
- Back and forward can be controlled through the sidebar, cmdk, and shortcut keys.
- back and forward act on the currently **active** view.
- buttons change disable&enable style based on current active view history

# Refactor:

Move app-sidebar and app-container from @affine/component to @affine/core
2024-03-05 07:01:24 +00:00
Cats Juice
358e1e99c5 feat(core): set journal's really created time (#5968)
closes #5958;

This makes the creation date of the journal correspond to the date, and the creation time is the real creation time.
2024-03-05 03:37:23 +00:00
EYHN
c599715963 feat(core): split right sidebar (#5971)
https://github.com/toeverything/AFFiNE/assets/13579374/c846c069-aa32-445d-b59b-b773a9b05ced

Now each view has a general container, the yellow area is the general container part, and the green part is the routing specific part.

![CleanShot 2024-03-01 at 11.47.35@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/g3jz87HxbjOJpXV3FPT7/9a9f6ad6-2207-42e5-ae66-f7426bc9f3fc.png)
2024-03-04 06:42:12 +00:00
EYHN
a231884d9e fix(storybook): fix storybook test (#5970) 2024-03-01 02:30:04 +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
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
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
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
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
Cats Juice
390fb90a8b feat(core): ignore empty journal for global useBlockSuitePageMeta hook (#5715)
[TOV-494](https://linear.app/affine-design/issue/TOV-494/空-journal-的隐藏处理)
2024-02-22 08:09:33 +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
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
Ayush Agrawal
6fad241350 feat: bump blocksuite (#5845) 2024-02-20 20:49:41 +08:00
Adithyan
afe59a864d feat: Duplicate page in page list and clone naming improvements (#5818) 2024-02-20 16:44:25 +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
liuyi
bef266ae3b refactor(server): reorganize server configs (#5753) 2024-02-02 08:32:07 +00:00
Cats Juice
5f3c04b51e fix(core): set createDate to journal's date when journal created (#5701) 2024-01-30 23:11:07 +08: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
DarkSky
070d5ca471 feat: impl unlimited features (#5659) 2024-01-26 08:28:54 +00:00
JimmFly
18068f4ae2 feat(core): add collection and tag filters to all pages (#5567)
close TOV-69

Added the `filterMode` parameter to the `/all` route.
Abstracted the `PageList` and associated components into more universal ones.
Added the `useTagMetas` hook to get and update  the workspace tags.

https://github.com/toeverything/AFFiNE/assets/102217452/7595944d-a056-40c2-8d89-d8df9e901a4b
2024-01-26 07:42:47 +00:00
Cats Juice
e7307d969c chore(core): remove journal experimental flag (#5698) 2024-01-25 05:33:57 +00:00
JimmFly
ad1521fd81 feat(core): adjust member order (#5685)
close #5686

`Owner >> Unaccepted > Admin > Write > Read`

This algorithm contains two parts: firstly, it calculates the weight of the Member (calculateWeight), and then, it uses set weights to sort the Members (useMembers).

In the calculateWeight part, the computation of the weight involves three primary factors:

1. **Permission Level**: The `Owner` is given the highest weight of `4`, followed by `Admin` with a weight of `3`, then `Write` with a weight of `2`, and finally, `Read`, with a weight of `1`.
2. **Acceptance Status**: `Unaccepted` members have a higher weight, this weight is `1`.
3. The weight corresponding to the permission level, if the member does not exist, this weight is 0.

These three `factors` are stored in the factors array and then processed through the reduce function for weighted sum calculation. Among them, `factor * Math.pow(10, arr.length - 1 - index)` means the more significant weight factors (i.e., the earlier factors) will be assigned a higher value.

Sorting rules are primarily based on the weight values obtained from the calculateWeight function. If the weights are identical, it then sorts by name, here assuming the weight of the name being `null` is the highest. If the names are not `null`, they are sorted alphabetically.
2024-01-24 12:44:01 +00:00
JimmFly
25897dc404 feat(workspace): add blob and storage limit (#5535)
close TOV-343 AFF-508 TOV-461 TOV-460 TOV-419

Add `isOverCapacity ` status to detect if blob usage exceeds limits.
Add `onCapacityChange` and `onBlobSet` to monitor if the storage or blob exceeds the capacity limit.
Global modals `LocalQuotaModal` and `CloudQuotaModal` have been added, with the upload size of the blob being limited within the modal components.
The notification component has been adjusted, now you can pass in `action` click events and `actionLabel` .
2024-01-24 07:34:51 +00:00
Peng Xiao
a687e7c0ed fix(core): workspace feature should be workspace specific (#5677)
fix TOV-429
2024-01-24 03:07:51 +00:00
Peng Xiao
f62b67de61 fix(core): should set lang when locale changes (#5679)
this + https://github.com/toeverything/design/pull/110 should fix #5591

fix TOV-457

Reason: HTML requires `lang` to be set to render the correct CJK glyphs.

https://heistak.github.io/your-code-displays-japanese-wrong

<img width="692" alt="image" src="https://github.com/toeverything/AFFiNE/assets/584378/1d350219-5157-42cb-8e98-76d92d55b41e">
2024-01-24 02:43:22 +00:00
Peng Xiao
ecdb5b3407 fix(core): properties adapter reactivitiy issue (#5661) 2024-01-23 01:41:44 +00:00
Peng Xiao
0ed26f51af feat(core): adopt editor features for journal (#5638) 2024-01-22 08:25:31 +00:00
Peng Xiao
735e1cb117 feat(core): page info adapter for journal (#5561)
Page info adapter + schema.
Adapted for journal features.

![image](https://github.com/toeverything/AFFiNE/assets/584378/2731ed2b-a125-4d62-b658-f2aff49d0e17)
2024-01-22 08:25:27 +00:00
Cats Juice
65bcdcafde feat(core): add experimental flag for journal (#5578) 2024-01-18 14:05:17 +00:00
Peng Xiao
9a944048e8 feat(core): experimental features ui (#5338)
fix TOV-280

experimental features ui
- enabled in the workspace settings for a cloud workspace; only show for workspace owner + early access
- a disclaimer prompt will be shown before going to the next feature setting page
- for now only show the ai poc switch, which controls the display of the ai tab in editor's sidepanel
2024-01-18 07:53:15 +00:00
Cats Juice
cabedef426 feat(core): journal hooks and page header layout (#5549)
feat(core): split page header items

feat(core): journal page judgment and header layout

feat(core): Add journal today button and style changes to share menu
2024-01-18 07:17:14 +00:00
Cats Juice
a64854319e feat(core): add document title for shared page (#5596) 2024-01-18 07:04:37 +00:00
JimmFly
4f4d057aad refactor(core): replace WorkspaceSubPath in env package with the one in core package (#5537) 2024-01-16 08:26:11 +00:00
regischen
3602f1cac0 feat: bump blocksuite (#5575) 2024-01-12 12:41:27 +08:00
EYHN
5aee480c50 refactor(core): move page list to core (#5556) 2024-01-10 11:09:39 +00:00
JimmFly
971f2beed1 fix(core): disable quick search when the link-popup is visitable (#5409)
close AFF-471
2024-01-04 11:36:50 +00:00
EYHN
9d0b3b4947 refactor(core): move workspace atoms to core (#5459)
@affine/workspace/atom -> @affine/core/modules/workspace
2024-01-02 10:06:48 +00:00
EYHN
4b217e6b89 refactor(core): move hooks to core (#5458)
* move @toeverything/hooks -> @affine/core/hooks
* delete @toeverything/hooks

hooks are all business-related logic and are deeply coupled with other parts.

Move them into the core and then reconstruct them by feature.
2024-01-02 08:05:46 +00:00
EYHN
0b9cd00fd3 refactor(core): adjust graphql hook (#5339) 2023-12-28 07:43:25 +00:00
Joooye_34
6b9f77f511 feat(core): set document title when detail page render (#5418) 2023-12-27 15:25:26 +00:00
EYHN
4e861d8118 refactor(electron): create electron api package (#5334) 2023-12-27 06:38:37 +00:00