Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
d1a900c
refactor(tools): load reatom modules
Bricks666 Nov 24, 2024
841a2c9
feat(shared): add base utilis to work with models
Bricks666 Nov 24, 2024
89121a9
refactor(activities): rewrite actions model
Bricks666 Nov 24, 2024
8dde23a
refactor(activities): rename model dir to models
Bricks666 Nov 24, 2024
42e6fea
refactor(activities): rewrite spheres model
Bricks666 Nov 24, 2024
d85e9c9
refactor(activities): rewrite activities model for activities in room
Bricks666 Nov 24, 2024
0afbba9
test(tools): add controller mock to return filtered activities
Bricks666 Nov 24, 2024
1efe662
refactor(activities): rename dto types
Bricks666 Nov 24, 2024
1beed3f
test(activities): add tests for activitites list items
Bricks666 Nov 24, 2024
788d77e
refactor(shared): add utility type to write funtion in short
Bricks666 Nov 25, 2024
6a0b562
refactor(shared): rename constants to store search params names and p…
Bricks666 Nov 25, 2024
b9c3f0a
refactor(shared): rewrite friendly list to use it with reatom model
Bricks666 Nov 25, 2024
d388fa5
refactor(users): rewrite users model
Bricks666 Nov 26, 2024
04273b9
test(users): add tests for user item components
Bricks666 Nov 26, 2024
da8400d
feat(shared): add reatom form implementation and integrate it with zod
Bricks666 Jan 12, 2025
64025e9
refactor(auth): rewrite registration form with reatom and reatom-form
Bricks666 Jan 12, 2025
5b2d1b1
refactor(shared): rewrite device info model with reatom. Add hook to …
Bricks666 Jan 25, 2025
c9dd9e1
refactor(activities): rewrite model for activities filters with reatom
Bricks666 Jan 25, 2025
09d1e3e
refactor(shared): rewrite routes configuration with reatom
Bricks666 Jan 26, 2025
c2c6f08
refactor(activities): rewrite conmponent to open all activities witho…
Bricks666 Jan 26, 2025
26e2668
refactor(activities): extract activities pagination into separated fe…
Bricks666 Jan 26, 2025
eacba8c
refactor(users): rename user picker to members picker. Add @x exports…
Bricks666 Jan 26, 2025
916409e
refactor(activities): rewrite activities lists. Add two widgets for l…
Bricks666 Jan 26, 2025
49b4242
fix(tools): add missing dependencies
Bricks666 Jan 26, 2025
bf69fe3
refactor(auth): rewrite login form with reatom model
Bricks666 Jan 26, 2025
0d1716e
fix(auth): fix registration form model with cache
Bricks666 Jan 26, 2025
df9f632
refactor(auth): rename registraion form component and add subdir
Bricks666 Jan 26, 2025
52882cd
refactor(auth): remove extra snapshot from login form
Bricks666 Jan 26, 2025
b3af40f
refactor(auth): rewrite logout logic. Remove profile menu and use jus…
Bricks666 Jan 26, 2025
746f187
refactor(shared): rewrite utils to validate responses
Bricks666 Feb 1, 2025
6a4635a
refactor(activities): add static type validation
Bricks666 Feb 1, 2025
58783fc
refactor(rooms): rewrite entities models and ui of room
Bricks666 Feb 1, 2025
b7edf98
refactor(shared): rewrite popups/dialogs model with reatom
Bricks666 Feb 10, 2025
9130170
refactor(rooms): add bunshi to rooms models
Bricks666 Feb 10, 2025
518999f
refactor(comments): remove
Bricks666 Feb 16, 2025
1d3c5ce
refactor(tags): rewrite tags model to load tags
Bricks666 Feb 21, 2025
cc5b07f
test(activity): update snapshot
Bricks666 Mar 28, 2025
b177200
refactor(user): user bunshi to scope users models
Bricks666 Mar 28, 2025
55b6c19
test(user): update snapshots and test to receive user as an object
Bricks666 Mar 28, 2025
6fa7af4
refactor(user): standartize user picker ui
Bricks666 Mar 28, 2025
f1b72bc
refactor(users): update users requests types
Bricks666 Mar 28, 2025
d3fd5fb
refactor(tasks): update tasks requests types
Bricks666 Mar 28, 2025
a63b6bf
refactor(shared): extend construct name parameters types. Allow use n…
Bricks666 Mar 28, 2025
c6500cb
refactor(tasks): rewrite tasks models with reatom and bunshi
Bricks666 Mar 28, 2025
849de8a
refactor(tasks): rename tasks base component and add tests
Bricks666 Mar 29, 2025
763e598
refactor(activities): rewrite activities models with bunshi
Bricks666 Mar 29, 2025
d28cc02
refactor(activities): rewrite activities ui
Bricks666 Mar 29, 2025
6952275
refactor(tags): update tags base ui
Bricks666 Mar 29, 2025
495e4f3
refactor(invitations): rewrite names of invitations components and ad…
Bricks666 Mar 29, 2025
b8aa180
refactor(invitatons): rename types to request data for invitations to…
Bricks666 Mar 29, 2025
a4cce70
refactor(users): return back id as value of users picker
Bricks666 Mar 29, 2025
52a29fb
fix(activity): fix re-export of skeleton of activity list item
Bricks666 Mar 29, 2025
e0dde92
refactor(activity): activity sphere and action pickers to use
Bricks666 Mar 29, 2025
574b379
refactor(shared): add withScope and withProvider component decorators
Bricks666 Mar 29, 2025
bed8e06
test(invitation): extend error handlers for mocked server and add uti…
Bricks666 Mar 29, 2025
179bf78
test(tags): add more error handlers for tags endpoints of mocked server
Bricks666 Mar 29, 2025
1849303
refactor(activity): rewrite activities filters with bunshi
Bricks666 Mar 29, 2025
0db272e
refactor(activity): add bunshi into activities pagination
Bricks666 Mar 29, 2025
f06461f
refactor(shared): add some types utils
Bricks666 Mar 29, 2025
7543bb0
docs(shared): add deprecation warning to use toggle and create single…
Bricks666 Mar 29, 2025
2f2b07f
refactor(tag): standartize tags requests params and add request options
Bricks666 Mar 29, 2025
2251bdc
refactor(auth): add bunshi to login model
Bricks666 Mar 29, 2025
c275118
refactor(auth): add bunshi to logout model
Bricks666 Mar 29, 2025
9ce4bcb
refactor(auth): add bunshi to registration model
Bricks666 Mar 29, 2025
8ffa312
refactor(auth): use reatomComponent in login form
Bricks666 Mar 29, 2025
3f0587b
refactor(shared): remove createSingletonFactoy util
Bricks666 Mar 29, 2025
76f21f3
refactor(activities): add hook to use reaction with passed callback
Bricks666 Apr 4, 2025
6770d30
refactor(auth): rewrite activate user feature with bunshi and reatom
Bricks666 Apr 4, 2025
e62c66c
refactor(task): rewrite tasks filters with reatom and bunshi
Bricks666 Apr 5, 2025
f5f5f3a
refactor(shared): extend field props. Make it more common
Bricks666 Apr 5, 2025
3e30d84
fix(shared): comment constract which ruins tests
Bricks666 Apr 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 0 additions & 4 deletions .babelrc

This file was deleted.

1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
reatom-form
66 changes: 44 additions & 22 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,11 @@
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:sonarjs/recommended",
"plugin:effector/recommended",
"plugin:effector/react",
"plugin:effector/scope",
"plugin:import/recommended",
"plugin:import/warnings",
"plugin:import/typescript",
"plugin:boundaries/recommended",
"plugin:@reatom/recommended",
"airbnb",
"prettier"
],
Expand All @@ -25,7 +23,27 @@
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["react", "@typescript-eslint", "effector"],
"plugins": ["react", "@typescript-eslint", "@reatom", "boundaries"],
"settings": {
"import/resolver": "typescript",
"boundaries/elements": [
{ "type": "app", "pattern": "@/app/*" },
{ "type": "pages", "pattern": "@/pages/*" },
{ "type": "widgets", "pattern": "@/widgets/*" },
{ "type": "features", "pattern": "@/features/*" },
{
"type": "@x",
"pattern": "@/entities/*/@x/*.ts",
"mode": "file"
},
{
"type": "entities",
"pattern": "@/entities/*"
},
{ "type": "shared", "pattern": "@/shared/*" }
],
"boundaries/ignore": ["**/*.spec.*"]
},
"rules": {
/* STANDARD */
"no-use-before-define": "off",
Expand Down Expand Up @@ -85,7 +103,11 @@
},
{
"message": "Private imports are prohibited, use public imports instead",
"group": ["@/entities/*/**"]
"group": [
"@/entities/*/**",
"!@/entities/*/@x",
"!@/entities/*/@x/*"
]
},
{
"message": "Private imports are prohibited, use public imports instead",
Expand Down Expand Up @@ -130,6 +152,7 @@
"react/no-unused-prop-types": "off",
"react/no-array-index-key": "off",
"react/react-in-jsx-scope": "off",
"react/jsx-no-bind": "off",

/* IMPORT */
"import/order": [
Expand All @@ -149,6 +172,11 @@
"position": "after",
"pattern": "@/features/**"
},
{
"group": "internal",
"position": "after",
"pattern": "@/entities/*/@x/*.ts"
},
{
"group": "internal",
"position": "after",
Expand Down Expand Up @@ -182,39 +210,33 @@
],
"import/no-unresolved": 0,
"import/prefer-default-export": "off",
"import/export": "off",

/* BOUNDARIES */
"boundaries/element-types": [
"warn",
"error",
{
"default": "disallow",
"rules": [
{
"from": "@/app",
"allow": [
"@/pages",
"@/widgets",
"@/features",
"@/entities",
"@/shared"
]
"from": "app",
"allow": ["pages", "widgets", "features", "entities", "shared"]
},
{
"from": "@/pages",
"allow": ["@/widgets", "@/features", "@/entities", "@/shared"]
"from": "pages",
"allow": ["widgets", "features", "entities", "shared"]
},
{
"from": "@/widgets",
"allow": ["@/features", "@/entities", "@/shared"]
"from": "widgets",
"allow": ["features", "entities", "shared"]
},
{ "from": "@/features", "allow": ["@/entities", "@/shared"] },
{ "from": "@/entities", "allow": ["@/shared"] },
{ "from": "@/shared", "allow": ["@/shared"] }
{ "from": "features", "allow": ["entities", "shared"] },
{ "from": "entities", "allow": ["@x", "shared"] },
{ "from": "shared", "allow": ["shared"] }
]
}
],

/* TS */
"@typescript-eslint/no-unused-vars": ["error"],
"@typescript-eslint/no-empty-interface": ["off"],
"@typescript-eslint/no-explicit-any": "warn"
Expand Down
2 changes: 1 addition & 1 deletion .lintstagedrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
],
"*.css": [
"prettier --write --ignore-unknown --config ./.prettierrc --ignore-path ./.prettierignore",
"stylelint --fix -c ./configs/styles/.stylelintrc.json"
"stylelint --fix -c ./.stylelintrc.json"
]
}
8 changes: 5 additions & 3 deletions .stylelintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,18 @@
"color-format/format": {
"format": "hsl"
},
"media-feature-range-notation": "prefix",
"media-feature-range-notation": "context",

"plugin/z-index-value-constraint": {
"min": -1,
"max": 10000
},

"pitcher/no-nested-media": true,

"plugin/no-low-performance-animation-properties": true
"plugin/no-low-performance-animation-properties": [
true,
{ "ignoreProperties": ["box-shadow"] }
]
},
"ignoreFiles": ["**/*.[jt]sx?", "**/third-party/*", "**/PlanEditor/*"]
}
49 changes: 4 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,5 @@
# Getting Started with Create React App
@todo
Think about [atomization](https://www.reatom.dev/recipes/atomization/)

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).

## Available Scripts

In the project directory, you can run:

### `npm start`

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.

The page will reload if you make edits.\
You will also see any lint errors in the console.

### `npm test`

Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.

### `npm run build`

Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.

### `npm run eject`

**Note: this is a one-way operation. Once you `eject`, you can’t go back!**

If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

## Learn More

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).

To learn React, check out the [React documentation](https://reactjs.org/).
@todo
Think about scope, DI and its react integration
3 changes: 3 additions & 0 deletions configs/tests/setup.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { expect, afterEach, beforeAll, afterAll, vi } from 'vitest';
import { resetDefaultInjector } from 'bunshi';
import { cleanup } from '@testing-library/react';
import * as matchers from '@testing-library/jest-dom/matchers';
import {
Expand Down Expand Up @@ -29,6 +30,7 @@ afterEach(() => {
cleanup();
server.resetHandlers();
cleanupMatchMedia();
resetDefaultInjector();
});

afterAll(() => {
Expand All @@ -37,3 +39,4 @@ afterAll(() => {

window.MediaQueryListEvent = MediaQueryListEvent;
window.matchMedia = matchMedia;
window.scrollTo = vi.fn();
Loading
Loading