Skip to content

Commit bf80be1

Browse files
authored
Merge pull request #113 from streamich/upgrades
Upgrades
2 parents 97187d5 + 265a834 commit bf80be1

File tree

10 files changed

+1129
-6166
lines changed

10 files changed

+1129
-6166
lines changed

.eslintrc.cjs

Lines changed: 0 additions & 39 deletions
This file was deleted.

.github/workflows/checks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
cache: yarn
2222
- run: yarn
2323
- run: yarn lint
24-
- run: yarn prettier:check
24+
- run: yarn format
2525
- run: yarn test
2626
- run: yarn build
2727
- run: yarn storybook:build --quiet

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
cache: yarn
2525
- run: yarn
2626
- run: yarn lint
27-
- run: yarn prettier:check
27+
- run: yarn format
2828
- run: yarn test
2929
- run: yarn build
3030
- name: Semantic Release

.storybook/main.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,25 @@ import type {StorybookConfig} from '@storybook/react-webpack5';
22

33
const config: StorybookConfig = {
44
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
5+
56
addons: [
67
'@storybook/addon-links',
78
'@storybook/addon-essentials',
89
'@storybook/addon-onboarding',
910
'@storybook/addon-interactions',
11+
'@storybook/addon-webpack5-compiler-babel',
12+
'@chromatic-com/storybook'
1013
],
14+
1115
framework: {
1216
name: '@storybook/react-webpack5',
1317
options: {},
1418
},
15-
docs: {
16-
autodocs: 'tag',
17-
},
19+
20+
docs: {},
21+
22+
typescript: {
23+
reactDocgen: 'react-docgen-typescript'
24+
}
1825
};
1926
export default config;

.storybook/preview.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {Preview} from '@storybook/react';
22

33
const preview: Preview = {
44
parameters: {
5-
actions: {argTypesRegex: '^on[A-Z].*'},
65
controls: {
76
matchers: {
87
color: /(background|color)$/i,

biome.json

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
{
2+
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
3+
"organizeImports": {
4+
"enabled": true
5+
},
6+
"formatter": {
7+
"indentStyle": "space",
8+
"lineWidth": 120
9+
},
10+
"javascript": {
11+
"formatter": {
12+
"quoteStyle": "single",
13+
"trailingCommas": "all",
14+
"bracketSpacing": false
15+
}
16+
},
17+
"linter": {
18+
"enabled": true,
19+
"rules": {
20+
"recommended": true,
21+
"style": {
22+
"noNonNullAssertion": "off",
23+
"useNodejsImportProtocol": "off",
24+
"useTemplate": "off",
25+
"noInferrableTypes": "off",
26+
"noUselessElse": "off",
27+
"noParameterAssign": "off",
28+
"noCommaOperator": "off",
29+
"useSingleVarDeclarator": "off",
30+
"useLiteralEnumMembers": "off"
31+
},
32+
"suspicious": {
33+
"noExplicitAny": "off",
34+
"useIsArray": "off",
35+
"noAssignInExpressions": "off",
36+
"noConfusingLabels": "off",
37+
"noConfusingVoidType": "off",
38+
"noConstEnum": "off"
39+
},
40+
"complexity": {
41+
"noStaticOnlyClass": "off",
42+
"useOptionalChain": "off",
43+
"noUselessLabel": "off"
44+
},
45+
"a11y": {
46+
"noSvgWithoutTitle": "off"
47+
},
48+
"performance": {
49+
"noDelete": "off"
50+
}
51+
}
52+
}
53+
}

package.json

Lines changed: 19 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,11 @@
1616
"lib/"
1717
],
1818
"scripts": {
19-
"prettier": "prettier --ignore-path .gitignore --write 'src/**/*.{ts,tsx,js,jsx}'",
20-
"prettier:check": "prettier --ignore-path .gitignore --list-different 'src/**/*.{ts,tsx,js,jsx}'",
21-
"lint": "yarn eslint",
22-
"lint:fix": "yarn eslint --fix",
23-
"eslint": "eslint src",
24-
"clean": "rimraf dist lib es6 es2019 es2020 esm typedocs storybook-static",
19+
"format": "biome format ./src",
20+
"format:fix": "biome format --write ./src",
21+
"lint": "biome lint ./src",
22+
"lint:fix": "biome lint --write ./src",
23+
"clean": "npx [email protected] dist lib es6 es2019 es2020 esm typedocs storybook-static",
2524
"build": "tsc --project tsconfig.build.json",
2625
"jest": "jest",
2726
"test": "yarn jest --maxWorkers 7",
@@ -50,43 +49,40 @@
5049
"crdt"
5150
],
5251
"dependencies": {
53-
"collaborative-editor": "^2.8.0",
54-
"react-use": "^17.5.1"
52+
"collaborative-editor": "^2.9.0",
53+
"json-joy": "^17.42.0",
54+
"react-use": "^17.6.0"
5555
},
5656
"peerDependencies": {
5757
"@monaco-editor/react": "*",
58-
"json-joy": "*",
5958
"monaco-editor": "*",
6059
"tslib": "2"
6160
},
6261
"devDependencies": {
6362
"@babel/preset-env": "^7.23.5",
6463
"@babel/preset-react": "^7.23.3",
6564
"@babel/preset-typescript": "^7.23.3",
65+
"@biomejs/biome": "^1.9.4",
66+
"@chromatic-com/storybook": "^3",
6667
"@monaco-editor/react": "^4.6.0",
67-
"@storybook/addon-essentials": "^7.6.2",
68-
"@storybook/addon-interactions": "^7.6.2",
69-
"@storybook/addon-links": "^7.6.2",
68+
"@storybook/addon-essentials": "^8.6.13",
69+
"@storybook/addon-interactions": "^8.6.13",
70+
"@storybook/addon-links": "^8.6.13",
71+
"@storybook/addon-webpack5-compiler-babel": "^3.0.6",
7072
"@storybook/addons": "^7.6.2",
71-
"@storybook/blocks": "^7.6.2",
72-
"@storybook/react": "^7.6.2",
73-
"@storybook/react-webpack5": "^7.6.2",
74-
"@storybook/testing-library": "^0.2.2",
73+
"@storybook/blocks": "^8.6.13",
74+
"@storybook/react": "^8.6.13",
75+
"@storybook/react-webpack5": "^8.6.13",
76+
"@storybook/test": "^8.6.13",
7577
"@types/jest": "^29.5.10",
7678
"@types/react": "^18.3.3",
77-
"@typescript-eslint/eslint-plugin": "^6.13.1",
78-
"@typescript-eslint/parser": "^6.13.1",
79-
"eslint": "^8.54.0",
80-
"eslint-plugin-react": "^7.33.2",
81-
"eslint-plugin-storybook": "^0.6.15",
8279
"jest": "^29.7.0",
8380
"json-joy": "^17.2.0",
8481
"monaco-editor": "^0.52.0",
8582
"prettier": "^3.3.3",
8683
"react": "^18.3.1",
8784
"react-dom": "^18.3.1",
88-
"rimraf": "^6.0.1",
89-
"storybook": "^7.6.2",
85+
"storybook": "^8.6.13",
9086
"ts-jest": "^29.1.1",
9187
"tslib": "^2.7.0",
9288
"typescript": "^5.6.3"
@@ -117,22 +113,6 @@
117113
"^(\\.{1,2}/.*)\\.js$": "$1"
118114
}
119115
},
120-
"prettier": {
121-
"arrowParens": "always",
122-
"printWidth": 120,
123-
"tabWidth": 2,
124-
"useTabs": false,
125-
"semi": true,
126-
"singleQuote": true,
127-
"trailingComma": "all",
128-
"bracketSpacing": false
129-
},
130-
"eslintConfig": {
131-
"extends": [
132-
"react-app",
133-
"react-app/jest"
134-
]
135-
},
136116
"config": {
137117
"config": {
138118
"commitizen": {

src/CollaborativeMonaco.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as React from 'react';
22
import {bind} from '.';
3-
import {Editor, EditorProps} from '@monaco-editor/react';
3+
import {Editor, type EditorProps} from '@monaco-editor/react';
44
import type {CollaborativeStr} from 'collaborative-editor';
55

66
export interface CollaborativeMonacoProps extends EditorProps {
@@ -16,6 +16,7 @@ export const CollaborativeMonaco: React.FC<CollaborativeMonacoProps> = ({str, ..
1616
}, []);
1717

1818
const handleMount = (editor: any, monaco: any) => {
19+
unbind.current?.();
1920
unbind.current = bind(str, editor, true);
2021
rest.onMount?.(editor, monaco);
2122
};

src/index.stories.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const Editor: React.FC<EditorProps> = ({
2727
const [model, clone] = React.useMemo(() => {
2828
const model = Model.create(s.str(src));
2929
return [model, model.clone()];
30-
}, []);
30+
}, [src]);
3131
React.useSyncExternalStore(model.api.subscribe, () => model.tick);
3232

3333
const insert = (text: string, position?: number) => {
@@ -55,10 +55,13 @@ const Editor: React.FC<EditorProps> = ({
5555
}}
5656
/>
5757
<div>
58-
<button onClick={() => insert('!')}>Append "!" to editor</button>
58+
<button type={'button'} onClick={() => insert('!')}>
59+
Append "!" to editor
60+
</button>
5961
</div>
6062
<div>
6163
<button
64+
type={'button'}
6265
onClick={() => {
6366
setTimeout(() => {
6467
insert('?');
@@ -70,6 +73,7 @@ const Editor: React.FC<EditorProps> = ({
7073
</div>
7174
<div>
7275
<button
76+
type={'button'}
7377
onClick={() => {
7478
setTimeout(() => {
7579
const str = model.s.toApi();
@@ -82,6 +86,7 @@ const Editor: React.FC<EditorProps> = ({
8286
</div>
8387
<div>
8488
<button
89+
type={'button'}
8590
onClick={() => {
8691
setTimeout(() => {
8792
insert('1. ', 0);
@@ -93,6 +98,7 @@ const Editor: React.FC<EditorProps> = ({
9398
</div>
9499
<div>
95100
<button
101+
type={'button'}
96102
onClick={() => {
97103
setTimeout(() => {
98104
const str = model.s.toApi();
@@ -105,6 +111,7 @@ const Editor: React.FC<EditorProps> = ({
105111
</div>
106112
<div>
107113
<button
114+
type={'button'}
108115
onClick={() => {
109116
setTimeout(() => {
110117
model.reset(clone);

0 commit comments

Comments
 (0)