mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-31 01:47:13 +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; | ||||||
|       } |       } | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								packages/core/helper-plugin/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								packages/core/helper-plugin/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -13,3 +13,4 @@ yarn-error.log | |||||||
| 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
	 Convly
						Convly