Commit Graph
100 Commits
Author SHA1 Message Date
Peng Xiao 5352736eba feat(component): new right sidebar (#5169)
Refactor AFFiNE layout to support new right sidebar.

The new layout:
![image](https://github.com/toeverything/AFFiNE/assets/584378/678a05f5-bd48-4dbe-ad78-7a0bcc979918)

**Highlights:**
- new sidebar UI/UX
- favoring top-down UI components that are composed by basic building blocks in each route, instead of creating universal component like `WorkspaceHeader` that renders every possible cases (which I think is really hard to maintain)
- remove plugin based solution

**Pros/cons for current plugin-based solution:**

The current solution is somewhat a Dependency Injection (DI) approach, where the layout is defined at the top and UI items can be injected using Jotai atom slots.
This approach works well if we want a fully configurable system with everything being handled by plugins. It provides flexibility for custom extensions.
However, this solution is more suitable for single-page applications where the UI is completely controlled by configuration. It becomes challenging to achieve an optimized and visually appealing UI that remains under our control. An example of such a scenario would be a customizable dashboard like Grafana.
Another drawback of the existing solution is that we need to use Jotai and hooks to access context values, resulting in an unclear data flow within the component hierarchy.

**Alternatively, our approach in this PR** provides layout building blocks such as headers and sidebars, which can then be composed in individual route components. The good is that we have cleaner biz component instead of vague all-in-one layout component (like `<WorkspaceHeader />`).

**Issues of the implementation in this PR:**
Some UI layouts that that seems to be defined at the root layout are now defined in individual route component instead.
New 3-col layout component like the right sidebar still needs some abstraction and they are right now just for the detail editor only.
2023-12-08 01:03:48 +00:00
Peng Xiao 980831f9f1 fix(electron): add debug flag for helper process (#5223) 2023-12-07 15:56:09 +00:00
Peng Xiao ed8e526f71 fix(core): remove duplicate loading component (#5168) 2023-12-07 15:34:10 +00:00
Peng Xiao 352bb548f0 fix(core): update noise image (#5219)
seems https://github.com/toeverything/AFFiNE/pull/4946 not in latest canary.
2023-12-07 15:11:00 +00:00
Peng Xiao 2b53430539 feat(core): allow core modules to import itself (#5207) 2023-12-06 08:45:54 +00:00
Peng Xiao 1e01ed0b0f fix(component): modal blurness (#5177)
moved https://github.com/toeverything/design/pull/108

Do not use transform to center the modal. It has know issue to cause modal to have blurred texts.

https://github.com/radix-ui/website/issues/383

fix https://github.com/toeverything/AFFiNE/issues/5176
2023-12-05 09:18:49 +00:00
Peng Xiao 512504e177 fix(electron): do not restore window on get window (#5163)
fix https://github.com/toeverything/AFFiNE/issues/5161

Looks like I used window.restore incorrectly.
2023-12-02 15:13:48 +00:00
Peng Xiao 6661e8bd9a fix(core): language display names (#5123) 2023-11-30 12:23:03 +08:00
Peng Xiao 890e3e4435 fix(core): should not refetch avatar when url does not change (#5070)
blob resources are in fact immutable. We do not need to refetch it by swr policies (mount/visibilitychange/etc)
2023-11-28 08:01:19 +00:00
Peng Xiao 3891f23dfa fix(component): rework tags list collapsing (#5072)
Before:

![CleanShot 2023-11-27 at 16.39.55@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/2ac2b8e3-6c30-41f7-a9b2-7a9c81b250fa.png)

After:
![CleanShot 2023-11-27 at 16.38.50@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/12eac806-e641-45be-9215-d166f8733db9.png)
2023-11-27 09:56:25 +00:00
Peng Xiao 8841dc3c4e fix(electron): electron dev startup on win (#5031) 2023-11-27 08:45:33 +00:00
Peng Xiao 2deceb6e85 test(core): simple recovery ui e2e (#5059) 2023-11-27 06:39:41 +00:00
Peng Xiao 71d6b730f7 chore: bump blocksuite (#5051)
https://github.com/toeverything/blocksuite/pull/5337
2023-11-27 04:46:23 +00:00
Peng Xiao 34d575078c feat(core): simple recovery history ui poc (#5033)
Simple recovery history UI poc.
What's missing
- [x] e2e

All biz logic should be done, excluding complete ui details.
- [ ] offline prompt
- [ ] history timeline
- [ ] page ui

https://github.com/toeverything/AFFiNE/assets/584378/fc3f6a48-ff7f-4265-b9f5-9c0087cb2635
2023-11-27 02:41:19 +00:00
Peng Xiao ae8329c590 chore(core): update react-resizable-panels (#5041)
`react-resizable-panels` will throw some errors sometime when showing history modal dialog.
I haven't checked the root cause, but upgrade it to the latest will get rid of the error.
2023-11-23 09:20:12 +00:00
Peng Xiao 7463e87742 fix(electron): clone db file when enable cloud for desktop (#5028)
At the moment on desktop the user's local blob data will be lost after enable cloud.
This is because blob data is only synced from old idb to new idb, but not sync into sqlitedb.

This pr will simply clone the db file for desktop app. It should also speed up the time when enabling cloud for a large local workspace.
2023-11-23 07:23:16 +00:00
Peng Xiao ca07b143ef fix(core): should not reset page preset on rerender (#5034)
Should not reset editor preset when re-render.

See https://github.com/toeverything/blocksuite/blob/ce7ac88fc750fb465a6b4227b8f93eafe8e894fc/packages/editor/src/components/editor-container.ts#L197. If these props changes, it will trigger some unexpected side effects.
2023-11-22 18:29:34 +00:00
Peng Xiao 3839a9bd15 build(electron): asar (#4965)
Due to restrictions on how Electron package works, the `node_modules` should not be hoisted and not to use s/h-links at all. This is why we need to have two separate installs for electron and non-electron packages in the build.

Tested via the following script

```bash
#!/bin/bash

echo "step 1: clean up"
find . -name "node_modules" -prune -exec rm -rf '{}' +
# git clean -dfX
build_type=canary

echo "step 2: install web dependencies"
# firstly, build web static
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 SENTRYCLI_SKIP_DOWNLOAD=1 PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 HUSKY=1 yarn

echo "step 3: generate assets"
BUILD_TYPE="$build_type" yarn workspace @affine/electron generate-assets

# cleanup node_modules
find . -name "node_modules" -prune -exec rm -rf '{}' +

echo "step 4: install electron dependencies"
# install electron deps
yarn config set nmHoistingLimits workspaces
yarn config set enableScripts false
yarn config set nmMode classic
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 HUSKY=0 yarn workspaces focus @affine/electron @affine/monorepo

echo "step 5: build native"
# build native
yarn workspace @affine/native build
yarn workspace @affine/storage build

echo "step 6: build electron"
# build electron
yarn workspace @affine/electron build

echo "step 7: package electron"
# package
SKIP_GENERATE_ASSETS=1 BUILD_TYPE="$build_type" HOIST_NODE_MODULES=1 yarn workspace @affine/electron package
```
2023-11-21 17:44:30 +00:00
Peng Xiao f33c49b27e fix(core): hmr issue on dev (#5006)
I suspect HMR does not working properly on dev because we have multiple entries.
One relative issue: https://github.com/webpack/webpack-dev-server/issues/2792/

I think we do not need multiple entries for polyfills & plugins after all. They could be in the same chunk, and could be later optimized through splitChunks option.

`ses.ts` is changed to `ses-lockdown.ts` because `ses.ts` does not pass circular dependency check by madge. I haven't looked through the real root cause though. See https://github.com/pahen/madge/issues/355
2023-11-21 17:27:16 +00:00
Peng Xiao add20ec2f8 fix(core): blob key issue for cloud blob provider (#4907)
There are some resources that only exists on `/static`. Current prefix check is incorrect since it could start with `/static`
2023-11-20 14:06:24 +08:00
Peng Xiao 791eb75ca8 fix(infra): page id compat fix for page ids in workspace.meta (#4950)
since we strip `page:` in keys of workspacedoc.spaces, we should also strip the prefix in meta.pages as well.
2023-11-16 21:57:17 +08:00
Peng Xiao 9ac8a32e00 perf(component): use png instead of svg for rendering noise svg (#4935) 2023-11-14 23:03:19 +08:00
Peng Xiao f9971ba922 fix(core): change server url of stable to insider (#4902) (#4926) 2023-11-14 14:40:06 +08:00
Peng Xiao 16488d594c fix(infra): compatibility fix for space prefix (#4912)
It seems there are some cases that [this upstream PR](https://github.com/toeverything/blocksuite/pull/4747) will cause data loss.

Because of some historical reasons, the page id could be different with its doc id.
It might be caused by subdoc migration in the following (not 100% sure if all white screen issue is caused by it) https://github.com/toeverything/AFFiNE/blob/0714c12703ff8840acc180633e5489c755ddfba3/packages/common/infra/src/blocksuite/index.ts#L538-L540

In version 0.10, page id in spaces no longer has prefix "space:"
The data flow for fetching a doc's updates is:
- page id in `meta.pages` -> find `${page-id}` in `doc.spaces` -> `doc` -> `doc.guid`
if `doc` is not found in `doc.spaces`, a new doc will be created and its `doc.guid` is the same with its pageId
- because of guid logic change, the doc that previously prefixed with `space:` will not be found in `doc.spaces`
- when fetching the rows of this doc using the doc id === page id,
  it will return EMPTY since there is no updates associated with the page id

The provided fix in the PR will patch the `spaces` field of the root doc so that after 0.10 the page doc can still be found in the `spaces` map. It shall apply to both of the idb & sqlite datasources.

Special thanks to @lawvs 's db file for investigation!
2023-11-14 14:39:50 +08:00
Peng Xiao 76b585d1ef fix(storybook): page tags display (#4924) 2023-11-14 09:45:12 +08:00
Peng Xiao a8d89254ce fix(electron): dev reload (#4911) 2023-11-12 03:19:27 +00:00
Peng Xiao 5c2d958e2b fix(core): svg blob syncing issue (#4886) 2023-11-10 05:32:51 +00:00
Peng Xiao fd74776abe fix(core): disable sync doc/blob on start (#4897) 2023-11-09 18:00:53 +00:00
Peng Xiao d0b014543c fix(core): select all in page list group header does not need to enable selection (#4869) 2023-11-09 12:01:36 +00:00
Peng Xiao 227b8b0061 fix(component): dragged component disappear when dragging (#4870) 2023-11-09 06:20:15 +00:00
Peng Xiao 442115632b chore(component): bump bs (#4880) 2023-11-09 04:47:10 +00:00
Peng Xiao ad82376890 chore: update delete icon (#4871) 2023-11-09 02:49:48 +00:00
Peng Xiao da9934fbdc fix(electron): add search to proxied url (#4852) 2023-11-06 14:47:44 +00:00
Peng Xiao cfffcad1b8 fix(core): adapt blob in sqlite for svg type (#4845) 2023-11-06 10:09:48 +00:00
Peng Xiao 7e381e830a perf(core): load all pages after 10s (#4834) 2023-11-03 09:42:29 +00:00
Peng XiaoandJoooye_34 65321e39cc refactor(component): virtual rendering page list (#4775)
Co-authored-by: Joooye_34 <Joooye1991@gmail.com>
2023-11-02 14:21:01 +00:00
Peng XiaoandJoooye_34 8ca53326a7 fix(electron): update app icons (#4789)
Co-authored-by: Joooye_34 <Joooye1991@gmail.com>
2023-10-31 09:09:42 +00:00
Peng Xiao f08408ebe5 fix(core): possible crash issues (#4783) 2023-10-31 08:56:14 +00:00
Peng Xiao 9e3c79526c fix(core): selectAtom crash on isEqual (#4780) 2023-10-31 03:29:18 +00:00
Peng Xiao a8b10c64b8 fix(component): disable CMDK list animation (#4685) 2023-10-23 06:46:11 +00:00
Peng Xiao 817463c40e feat(component): checkbox (#4665) 2023-10-20 03:46:44 +00:00
Peng Xiao 9b3e6bf1f5 fix(docs): update docs 2023-10-18 14:00:44 +08:00
Peng Xiao 4135cfd243 fix(docs): remove secret in readme 2023-10-18 13:45:41 +08:00
Peng Xiao 62d2b09e3c fix(core): remove redundant providers (#4648) 2023-10-17 20:24:41 +00:00
Peng Xiao 5e9eeaddbd build(electron): allow customizing channel type for internal build (#4511) 2023-10-17 01:15:19 +00:00
Peng Xiao fea6b81a53 fix(electron): app image icon (#4442) 2023-10-16 15:54:28 +00:00
Peng Xiao d9fe3e73d5 fix: list page storybook not rendering issue (#4560) 2023-10-09 07:54:05 +00:00
Peng Xiao 369db3fea5 fix(component): cmdk flaky (#4512) 2023-09-27 01:37:00 +00:00
Peng Xiao 29fa237dfb fix: storybook previews (#4504) 2023-09-26 05:51:39 +00:00
Peng Xiao eb728f7ef2 fix: give content match a lower score (#4499) 2023-09-26 03:15:40 +00:00
Peng Xiao e8410b948d chore(component): bump themes (#4484) 2023-09-25 12:03:28 +00:00
Peng Xiao 3f09ba92bc fix: cmdk scrollbar gutter (#4488) 2023-09-25 12:03:02 +00:00
Peng Xiao dc6b66c32f fix: register command re-rendering (#4476) 2023-09-25 02:40:53 +00:00
Peng Xiao e0063ebc9b feat: new CMD-K (#4408) 2023-09-22 14:31:26 +00:00
Peng Xiao 27e4599c94 chore: bump components version (#4454) 2023-09-22 08:56:10 +00:00
Peng Xiao 872dc3521b fix: allow file protocol streaming (#4441) 2023-09-21 19:10:03 +08:00
Peng Xiao 6e79858f41 fix: add prompt select_account for google login (#4415) 2023-09-20 03:22:43 +00:00
Peng XiaoandLongYinan b9656b1e22 fix: orderby in members list (#4375)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2023-09-15 19:24:00 +00:00
Peng Xiao eea38a08c5 fix: add platform selector to storybook (#4380) 2023-09-15 08:59:29 +00:00
Peng Xiao b5e8fecfd0 fix: update windows install gif (#4379) 2023-09-15 15:07:58 +08:00
Peng Xiao 1d77b2c9da docs: add readme for developing @affine/server (#4351) 2023-09-14 02:58:13 +00:00
Peng Xiao b023c79d5c fix: test hang (#4349) 2023-09-14 02:13:36 +00:00
Peng Xiao ab7be0b940 fix: remove open app timeout (#4332) 2023-09-13 05:08:44 +00:00
Peng Xiao 923148d841 fix: force syncing DB when export db (#4312) 2023-09-13 03:13:38 +00:00
Peng Xiao 9ec2b9cf51 fix: signout account when logging through oauth signin via desktop (#4321) 2023-09-13 02:10:03 +00:00
Peng Xiao 9e5213f074 fix: potential issue that may push whole window up a bit (#4311) 2023-09-12 06:45:41 +00:00
Peng Xiao fc76163dd1 fix: get auth token for development (#4295) 2023-09-12 13:31:58 +08:00
Peng Xiao ea2196b039 fix: circular dependencies (#4307) 2023-09-11 17:00:48 +00:00
Peng XiaoandX1a0t 892cae5599 fix: SHOULD_REPORT_TRACE condition (#4273)
Co-authored-by: X1a0t <405028157@qq.com>
2023-09-11 09:47:02 +00:00
Peng Xiao 46fd732ee6 fix: cookie name (#4293) 2023-09-08 23:42:09 -07:00
Peng Xiao e00f40537b fix: allow login with credentials on production (#4288) 2023-09-08 23:02:01 +00:00
Peng Xiao bf3a3379ae fix: disable set-db-location step (#4263) 2023-09-07 17:41:27 +00:00
Peng XiaoandAlex Yang d54f027f50 fix: sigin in different window may not refresh workspace list (#4270)
Co-authored-by: Alex Yang <himself65@outlook.com>
2023-09-07 17:30:21 +00:00
Peng XiaoandAlex Yang 185546b8ea fix: logout 404 (#4253)
Co-authored-by: Alex Yang <himself65@outlook.com>
2023-09-07 16:14:02 +00:00
Peng Xiao 0c4277e5b9 fix: better transition (#4267) 2023-09-07 15:20:48 +00:00
Peng Xiao 2813ad36b8 fix: disable simutanous updater download (#4254) 2023-09-07 06:54:51 +00:00
Peng XiaoandAlex Yang 1301605db5 fix: workspace list dnd issues (#4219)
Co-authored-by: Alex Yang <himself65@outlook.com>
2023-09-07 05:06:03 +00:00
Peng Xiao 1dc94277c2 fix: use database session cookie for production (#4200) 2023-09-05 17:30:50 +00:00
Peng Xiao 8407b2dd7c fix: force reset callbackurl cookie in electron (#4199) 2023-09-05 12:54:17 +00:00
Peng Xiao bf40d41c86 fix: cloud workspace sometimes converted to local workspace (#4194) 2023-09-05 09:53:22 +00:00
Peng Xiao 8b4f2a6c50 fix: sidebar ui fix (#4187) 2023-09-05 09:48:48 +00:00
Peng XiaoandAlex Yang d57f995e87 feat: add fav button (#4159)
Co-authored-by: Alex Yang <himself65@outlook.com>
2023-09-04 17:14:02 +00:00
Peng Xiao 5288645e33 fix: header ui styles (#4156) 2023-09-04 10:13:20 +00:00
Peng Xiao 1066a8ca74 fix: style fixes to windows app control buttons (#4150) 2023-09-04 09:01:31 +00:00
Peng Xiao f245b4f5ce fix: api url for electron (#4142) 2023-09-04 07:43:39 +00:00
Peng Xiao c9c76983de fix: cookie issues in Electron (#4115) 2023-09-01 17:34:08 +00:00
Peng Xiao d4a2b3f4d1 fix: not be able to login with Google in desktop (#4093) 2023-08-31 23:34:55 -05:00
Peng Xiao b0024080bd fix: add back sourcemaps to electron build (#4090) 2023-09-01 03:34:18 +00:00
Peng XiaoandAlex Yang a2e4ef904b refactor: remove hacky email login (#4075)
Co-authored-by: Alex Yang <himself65@outlook.com>
2023-08-31 12:49:22 -05:00
Peng XiaoandAlex Yang 13857d59dc fix: some style issues to sidebar and switch (#4046)
Co-authored-by: Alex Yang <himself65@outlook.com>
2023-08-31 20:46:06 +08:00
Peng Xiao 8e48255ef8 fix: userinfo title (#4068) 2023-08-31 09:46:26 +00:00
Peng XiaoandAlex Yang 4e45554585 feat: support google login on desktop (#4053)
Co-authored-by: Alex Yang <himself65@outlook.com>
2023-08-31 12:51:49 +08:00
Peng Xiao d6c0e67bf0 fix: electron white screen (#4048) 2023-08-30 09:41:06 -05:00
Peng Xiao 82f8ac50de fix: replace dmg bg (#4038) 2023-08-29 23:30:45 -05:00
Peng Xiao cbb5b6e4a5 fix: crash on close (#4033) 2023-08-30 03:06:43 +00:00
Peng Xiao 800f3c3cb6 feat: add open app route (#3899) 2023-08-29 22:40:25 +00:00
Peng Xiao 849e225a2d fix: disable auto updater on dev (#4019) 2023-08-29 14:04:27 -05:00
Peng Xiao 7b0e5b89ed fix: electron whitescreen (#4013) 2023-08-29 11:51:57 -05:00
Peng Xiao 3ef0db7512 fix: add arch key to setup-node cached files (#4016) 2023-08-29 16:36:21 +00:00
Peng Xiao 92f9cb01f3 fix: enable electron sourcemap (#4014) 2023-08-29 23:42:50 +08:00