Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
44e18e3
chore: add storybook
DakEnviy May 7, 2026
e6cba2a
chore: add app demo
DakEnviy May 7, 2026
1d05d9d
feat: add async boundaries
DakEnviy May 7, 2026
520a2a0
feat: add HOCs for async boundaries
DakEnviy May 7, 2026
6896c34
chore: fix typo
DakEnviy May 7, 2026
331c994
feat: add useSuspenseQueryData
DakEnviy May 8, 2026
b4a3976
feat: make error unknown by default
DakEnviy May 8, 2026
b72b6e8
feat(react): add EmptyView
DakEnviy May 8, 2026
1670bdc
feat(plugin): add DataSourceLazy plugin
DakEnviy May 15, 2026
a67b7f6
build: exclude unnecessary files from build directory
DakEnviy May 15, 2026
e0ed5bf
chore: downgrade oxc-* packages
DakEnviy May 15, 2026
fa22ed6
build(plugin): support cjs
DakEnviy May 15, 2026
b063eea
build: remove old main, module and types files from package.json
DakEnviy May 15, 2026
82a28ff
fix(plugin): drop accesses inside HOC args
DakEnviy May 16, 2026
7404312
fix(plugin): fix parsing virtual id for rspack
DakEnviy May 16, 2026
ddbdeb9
feat: propsify async boundaries
DakEnviy May 16, 2026
863a234
feat(react): add withAsync
DakEnviy May 16, 2026
d554a9d
fix(plugin): resolve re-exports for hoc files
DakEnviy May 16, 2026
5ec7864
feat(plugin): make error argument optional
DakEnviy May 16, 2026
9160d51
feat(plugin): support transformUsages for companion modules
DakEnviy May 17, 2026
bbe2fc0
fix(plugin): transform usages for inline content
DakEnviy May 17, 2026
a7115cb
feat(react): add DataInfiniteWrapper
DakEnviy May 20, 2026
d265c06
fix(react/DataInfiniteLoader): stabilize MoreView
DakEnviy Jul 9, 2026
6dde1a6
fix(react/DataInfiniteWrapper): show previous node when no isFetching…
DakEnviy Jul 9, 2026
f71d4ab
fix: some review fixes
DakEnviy Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"parserOptions": {
"project": "tsconfig.json"
},
"ignorePatterns": ["/*", "!/src"],
"ignorePatterns": ["/*", "!/src", "!/.storybook"],
"rules": {
"callback-return": "off",
"react-hooks/exhaustive-deps": "error",
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ node_modules
# Artifacts
build

# Storybook
storybook-static

# Editor configs
.vscode/*
!.vscode/extensions.json
Expand Down
32 changes: 32 additions & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import path from 'node:path';

import {configureServiceWebpackConfig} from '@gravity-ui/app-builder';
import type {StorybookConfig} from '@storybook/react-webpack5';

import dataSourceLazyPlugin from '../src/plugin/webpack';

const config: StorybookConfig = {
stories: ['../src/**/*.stories.@(ts|tsx)'],
framework: '@storybook/react-webpack5',
addons: ['@storybook/addon-webpack5-compiler-swc'],
core: {
disableWhatsNewNotifications: true,
},
webpackFinal: async (originalConfig, {configType}) => {
const mode = configType === 'DEVELOPMENT' ? 'development' : 'production';
const webpackConfig = await configureServiceWebpackConfig(mode, originalConfig);

webpackConfig.resolve ??= {};
webpackConfig.resolve.alias = {
...webpackConfig.resolve.alias,
'@gravity-ui/data-source': path.resolve(__dirname, '../src/index.ts'),
};

webpackConfig.plugins ??= [];
webpackConfig.plugins.push(dataSourceLazyPlugin());

return webpackConfig;
},
};

export default config;
33 changes: 33 additions & 0 deletions .storybook/preview.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/* eslint-disable import/order */
import React from 'react';

import {ThemeProvider} from '@gravity-ui/uikit';
import type {Preview} from '@storybook/react-webpack5';

import {ClientDataManager, DataSourceProvider} from '@gravity-ui/data-source';

import '@gravity-ui/uikit/styles/fonts.css';
import '@gravity-ui/uikit/styles/styles.css';
import '@gravity-ui/illustrations/styles/styles.scss';

const dataManager = new ClientDataManager({
defaultOptions: {
queries: {
retryOnMount: false,
},
},
});

const preview: Preview = {
decorators: [
(Story) => (
<DataSourceProvider dataManager={dataManager}>
<ThemeProvider theme="light">
<Story />
</ThemeProvider>
</DataSourceProvider>
),
],
};

export default preview;
2 changes: 1 addition & 1 deletion app-builder.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ import {defineConfig} from '@gravity-ui/app-builder';

export default defineConfig({
lib: {
internalDirs: ['__tests__'],
internalDirs: ['.storybook', '**/__tests__', '**/__stories__', 'plugin'],
},
});
2 changes: 1 addition & 1 deletion jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ module.exports = {
'^.+\\.tsx?$': '@swc/jest',
},
testEnvironment: 'jsdom',
setupFilesAfterEnv: ['<rootDir>/src/setupTests.ts'],
setupFilesAfterEnv: ['<rootDir>/src/__tests__/setupTests.ts'],
};
Loading
Loading