mirror of
https://github.com/strapi/strapi.git
synced 2025-09-09 08:39:45 +00:00
Merge branch 'master' into releases/4.3.0
This commit is contained in:
commit
ba91f47f04
@ -51,7 +51,6 @@ module.exports = {
|
|||||||
'<rootDir>/packages/admin-test-utils/lib/setup/styled-components.js',
|
'<rootDir>/packages/admin-test-utils/lib/setup/styled-components.js',
|
||||||
'<rootDir>/packages/admin-test-utils/lib/setup/strapi.js',
|
'<rootDir>/packages/admin-test-utils/lib/setup/strapi.js',
|
||||||
],
|
],
|
||||||
testEnvironment: 'jsdom',
|
|
||||||
transform: {
|
transform: {
|
||||||
'^.+\\.js$': ['@swc/jest', { jsc: { parser: { jsx: true, dynamicImport: true } } }],
|
'^.+\\.js$': ['@swc/jest', { jsc: { parser: { jsx: true, dynamicImport: true } } }],
|
||||||
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
|
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
|
||||||
|
@ -99,11 +99,10 @@
|
|||||||
"glob": "7.2.3",
|
"glob": "7.2.3",
|
||||||
"husky": "3.1.0",
|
"husky": "3.1.0",
|
||||||
"istanbul": "~0.4.2",
|
"istanbul": "~0.4.2",
|
||||||
"jest": "28.1.3",
|
"jest": "26.6.3",
|
||||||
"jest-circus": "28.1.3",
|
"jest-circus": "26.6.3",
|
||||||
"jest-cli": "28.1.3",
|
"jest-cli": "26.6.3",
|
||||||
"jest-environment-jsdom": "28.1.3",
|
"jest-watch-typeahead": "0.6.5",
|
||||||
"jest-watch-typeahead": "2.0.0",
|
|
||||||
"lerna": "5.1.6",
|
"lerna": "5.1.6",
|
||||||
"lint-staged": "10.5.4",
|
"lint-staged": "10.5.4",
|
||||||
"lodash": "4.17.21",
|
"lodash": "4.17.21",
|
||||||
|
@ -238,7 +238,8 @@ const EditViewDataManagerProvider = ({
|
|||||||
['text', 'textarea', 'string', 'email', 'uid', 'select', 'select-one', 'number'].includes(
|
['text', 'textarea', 'string', 'email', 'uid', 'select', 'select-one', 'number'].includes(
|
||||||
type
|
type
|
||||||
) &&
|
) &&
|
||||||
!value
|
!value &&
|
||||||
|
value !== 0
|
||||||
) {
|
) {
|
||||||
inputValue = null;
|
inputValue = null;
|
||||||
}
|
}
|
||||||
|
3
packages/core/helper-plugin/.gitignore
vendored
3
packages/core/helper-plugin/.gitignore
vendored
@ -12,4 +12,5 @@ yarn-error.log
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
.idea
|
.idea
|
||||||
stats.html
|
stats.html
|
||||||
|
coverage
|
@ -4,7 +4,22 @@ import { useState } from 'react';
|
|||||||
import { Meta, Story, Canvas } from '@storybook/addon-docs/blocks';
|
import { Meta, Story, Canvas } from '@storybook/addon-docs/blocks';
|
||||||
import DateTimePicker from './index';
|
import DateTimePicker from './index';
|
||||||
|
|
||||||
<Meta title="components/DateTimePicker" component={DateTimePicker} />
|
<Meta
|
||||||
|
title="components/DateTimePicker"
|
||||||
|
component={DateTimePicker}
|
||||||
|
argTypes={{
|
||||||
|
label: {
|
||||||
|
control: {
|
||||||
|
type: 'text'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
control: {
|
||||||
|
type: 'date'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
|
||||||
# DateTimePicker
|
# DateTimePicker
|
||||||
|
|
||||||
@ -38,7 +53,6 @@ Description...
|
|||||||
<Canvas>
|
<Canvas>
|
||||||
<Story name="error">
|
<Story name="error">
|
||||||
<DateTimePicker
|
<DateTimePicker
|
||||||
label="Date time picker"
|
|
||||||
hint="This is a super description"
|
hint="This is a super description"
|
||||||
error="Very very very very very very very long error"
|
error="Very very very very very very very long error"
|
||||||
/>
|
/>
|
||||||
@ -54,7 +68,7 @@ Description...
|
|||||||
<DateTimePicker
|
<DateTimePicker
|
||||||
label="Date time picker"
|
label="Date time picker"
|
||||||
hint="This is a super description"
|
hint="This is a super description"
|
||||||
value="2021-10-13T10dd:00:00.000Z"
|
value="2021-10-13T10:00:00.000Z"
|
||||||
/>
|
/>
|
||||||
</Story>
|
</Story>
|
||||||
</Canvas>
|
</Canvas>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import React, { useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { Stack } from '@strapi/design-system/Stack';
|
import { Stack } from '@strapi/design-system/Stack';
|
||||||
@ -109,6 +109,21 @@ const DateTimePicker = ({
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (value) {
|
||||||
|
const parsedData = parseDate(value);
|
||||||
|
setDateValue(parsedData);
|
||||||
|
setTimeValue(
|
||||||
|
parsedData
|
||||||
|
? `${parsedData.getHours()}:${parsedData.getMinutes()}:${parsedData.getSeconds()}`
|
||||||
|
: null
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
setDateValue(undefined);
|
||||||
|
setTimeValue(undefined);
|
||||||
|
}
|
||||||
|
}, [value]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CustomField
|
<CustomField
|
||||||
name={name}
|
name={name}
|
||||||
|
@ -40,4 +40,67 @@ describe('DateTimePicker', () => {
|
|||||||
|
|
||||||
expect(datepicker.value).toBe('10/13/2021');
|
expect(datepicker.value).toBe('10/13/2021');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should rerender a new value passed as props', () => {
|
||||||
|
const { rerender } = render(
|
||||||
|
<ThemeProvider theme={lightTheme}>
|
||||||
|
<DateTimePicker
|
||||||
|
value={new Date('2021-10-13T13:43:00.000Z')}
|
||||||
|
step={15}
|
||||||
|
onChange={() => {}}
|
||||||
|
name="datetimepicker"
|
||||||
|
label="Date time picker"
|
||||||
|
hint="This is a super description"
|
||||||
|
/>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
|
||||||
|
rerender(
|
||||||
|
<ThemeProvider theme={lightTheme}>
|
||||||
|
<DateTimePicker
|
||||||
|
value={new Date('2021-10-04T13:00:00.000Z')}
|
||||||
|
step={15}
|
||||||
|
onChange={() => {}}
|
||||||
|
name="datetimepicker"
|
||||||
|
label="Date time picker"
|
||||||
|
hint="This is a super description"
|
||||||
|
/>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
|
||||||
|
const datepicker = screen.getByTestId('datetimepicker-date');
|
||||||
|
|
||||||
|
expect(datepicker.value).toBe('10/4/2021');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should rerender an empty value if it is passed as props', () => {
|
||||||
|
const { rerender } = render(
|
||||||
|
<ThemeProvider theme={lightTheme}>
|
||||||
|
<DateTimePicker
|
||||||
|
value={new Date('2021-10-13T13:43:00.000Z')}
|
||||||
|
step={15}
|
||||||
|
onChange={() => {}}
|
||||||
|
name="datetimepicker"
|
||||||
|
label="Date time picker"
|
||||||
|
hint="This is a super description"
|
||||||
|
/>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
|
||||||
|
rerender(
|
||||||
|
<ThemeProvider theme={lightTheme}>
|
||||||
|
<DateTimePicker
|
||||||
|
step={15}
|
||||||
|
onChange={() => {}}
|
||||||
|
name="datetimepicker"
|
||||||
|
label="Date time picker"
|
||||||
|
hint="This is a super description"
|
||||||
|
/>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
|
||||||
|
const datepicker = screen.getByTestId('datetimepicker-date');
|
||||||
|
|
||||||
|
expect(datepicker.value).toBe('');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
"prepublishOnly": "npm run build",
|
"prepublishOnly": "npm run build",
|
||||||
"storybook": "start-storybook -p 6006",
|
"storybook": "start-storybook -p 6006",
|
||||||
"test:front": "jest --config ./jest.config.front.js",
|
"test:front": "jest --config ./jest.config.front.js",
|
||||||
|
"test:front:cov": "jest --config ./jest.config.front.js --coverage --collectCoverageFrom='<rootDir>/packages/core/helper-plugin/lib/src/**/*.js' --coverageDirectory='<rootDir>/packages/core/helper-plugin/coverage'",
|
||||||
"test:front:watch": "jest --config ./jest.config.front.js --watchAll",
|
"test:front:watch": "jest --config ./jest.config.front.js --watchAll",
|
||||||
"watch": "yarn create:index && cross-env NODE_ENV=development webpack-cli -w"
|
"watch": "yarn create:index && cross-env NODE_ENV=development webpack-cli -w"
|
||||||
},
|
},
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
module.exports = async () => {
|
module.exports = async () => {
|
||||||
process.env.TZ = 'UTC';
|
process.env.TZ = 'UTC';
|
||||||
|
process.env.LANG = 'en_US.UTF-8';
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user