Skip to content

Commit 0875afe

Browse files
Fix TypeScript complexity issues for MUI v5 (#2)
* Add keywords to package.json, fix type imports in v7 tests * Fix flex map ignoring responsive direction when transforming x/y * Fix typescript complexity issues for MUI v5 * Bump version to 2.0.4-rc.0
1 parent bdae754 commit 0875afe

28 files changed

+286
-97
lines changed

demos/shared/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mui-flexy-demo-shared",
3-
"version": "2.0.3",
3+
"version": "2.0.4-rc.0",
44
"description": "Shared components for mui-flexy demos",
55
"private": true,
66
"dependencies": {

demos/v5/dist/bundle.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demos/v5/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mui-flexy-demo-v5",
3-
"version": "2.0.3",
3+
"version": "2.0.4-rc.0",
44
"description": "Demo server for mui-flexy v5",
55
"private": true,
66
"scripts": {

demos/v6/dist/bundle.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demos/v6/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mui-flexy-demo-v6",
3-
"version": "2.0.3",
3+
"version": "2.0.4-rc.0",
44
"description": "Demo server for mui-flexy v6",
55
"private": true,
66
"scripts": {

demos/v7/dist/bundle.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demos/v7/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mui-flexy-demo-v7",
3-
"version": "2.0.3",
3+
"version": "2.0.4-rc.0",
44
"description": "Demo server for mui-flexy v7",
55
"private": true,
66
"scripts": {

docs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mui-flexy-docs",
3-
"version": "2.0.3",
3+
"version": "2.0.4-rc.0",
44
"description": "Documentation for mui-flexy",
55
"private": true,
66
"type": "module",

docs/static/core.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,21 +65,29 @@ const stringOrArrayValue = (value, index)=>{
6565
}
6666
};
6767
const mapResponsiveObject = (direction, main, cross)=>{
68-
return Object.fromEntries(Object.entries(direction ?? []).map(([key, d])=>{
68+
return Object.fromEntries(Object.entries(direction ?? {}).map(([key, d])=>{
6969
if (typeof d !== "string") {
7070
throw new Error("Values for a flex direction ResponsiveStyleObject must be strings, e.g. { xs: 'row', sm: 'column' }");
7171
}
72-
if (d.startsWith("column")) {
72+
const target = d.startsWith("column") ? cross : main;
73+
const aligned = mapAlignment(target);
74+
if (aligned === undefined || aligned === null || typeof aligned === "string") {
7375
return [
7476
key,
75-
typeof cross === "string" ? cross : mapAlignment(cross)?.[key]
77+
aligned
7678
];
77-
} else {
79+
}
80+
if (Array.isArray(aligned)) {
81+
const index = Number(key);
7882
return [
7983
key,
80-
typeof main === "string" ? main : mapAlignment(main)?.[key]
84+
Number.isNaN(index) ? undefined : aligned[index]
8185
];
8286
}
87+
return [
88+
key,
89+
aligned[key]
90+
];
8391
}));
8492
};
8593
const resolveAlignment = (direction, x, y)=>{

docs/static/v5.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,21 +70,29 @@ const stringOrArrayValue = (value, index)=>{
7070
}
7171
};
7272
const mapResponsiveObject = (direction, main, cross)=>{
73-
return Object.fromEntries(Object.entries(direction ?? []).map(([key, d])=>{
73+
return Object.fromEntries(Object.entries(direction ?? {}).map(([key, d])=>{
7474
if (typeof d !== "string") {
7575
throw new Error("Values for a flex direction ResponsiveStyleObject must be strings, e.g. { xs: 'row', sm: 'column' }");
7676
}
77-
if (d.startsWith("column")) {
77+
const target = d.startsWith("column") ? cross : main;
78+
const aligned = mapAlignment(target);
79+
if (aligned === undefined || aligned === null || typeof aligned === "string") {
7880
return [
7981
key,
80-
typeof cross === "string" ? cross : mapAlignment(cross)?.[key]
82+
aligned
8183
];
82-
} else {
84+
}
85+
if (Array.isArray(aligned)) {
86+
const index = Number(key);
8387
return [
8488
key,
85-
typeof main === "string" ? main : mapAlignment(main)?.[key]
89+
Number.isNaN(index) ? undefined : aligned[index]
8690
];
8791
}
92+
return [
93+
key,
94+
aligned[key]
95+
];
8896
}));
8997
};
9098
const resolveAlignment = (direction, x, y)=>{

0 commit comments

Comments
 (0)