mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
5b31a40593
- Removed custom form reducers in favour of redux-form (updateField(), addForm(), etc) - Storing 'state' in schema reducer to avoid a separate forms reducer tree (no longer needed for other use cases). This means 'state' is only the "initial state", any form edits will be handled by redux-form internally in the 'reduxForm' reducer namespace - Removed componentWillUnmount() from <Form> since there's no more reducer state to clean up (removed formReducer.js), and redux-form handles that internally - Removed isFetching state from <FormBuilder> since there's now a props.submitting coming from redux-form - Improved passing of "clicked button" (submittingAction), using component state rather than reducer and passing it into action handlers (no need for components to inspect it any other way) - Hacky duplication of this.submittingAction and this.state.submittingAction to avoid re-render of <FormBuilder> *during* a submission (see https://github.com/erikras/redux-form/issues/1944) - Inlined handleSubmit() XHR (rather than using a redux action). There's other ways for form consumers to listen to form evens (e.g. onSubmitSuccess passed through <FormBuilder> into reduxForm()). - Adapting checkbox/radio fields to redux-forms Need to send onChange event with values rather than the original event, see http://redux-form.com/6.1.1/docs/api/Field.md/#-input-onchange-eventorvalue-function- - Using reduxForm() within render() causes DOM to get thrown away, and has weird side effects like https://github.com/erikras/redux-form/issues/1944. See https://github.com/erikras/redux-form/issues/603#issuecomment-176397728 - Refactored <FormBuilderLoader> as a separate container component which connects to redux and redux-form. This keeps the <FormBuilder> component dependency free and easy to test. It'll also be an advantage if we switch to a GraphQL backed component, in which case the async loading routines will look very different from the current <FormBuilderLoader> implementation - Refactoring out the redux-form dependency from FormBuilder to make it more testable (through baseFormComponent and baseFieldComponent) - Passing through 'form' to allow custom identifiers (which is important because currently the schema "id" contains the record identifier, making the form identifier non-deterministic - which means you can't use it with the redux-form selector API)
121 lines
3.5 KiB
JSON
121 lines
3.5 KiB
JSON
{
|
|
"name": "silverstripe-framework",
|
|
"version": "4.0.0",
|
|
"description": "The SilverStripe framework",
|
|
"directories": {
|
|
"doc": "docs",
|
|
"test": "tests"
|
|
},
|
|
"engines": {
|
|
"node": "^4.2.0"
|
|
},
|
|
"scripts": {
|
|
"build": "webpack",
|
|
"watch": "webpack --config ./webpack-dev.config.js --watch",
|
|
"css": "WEBPACK_CHILD=css webpack",
|
|
"lock": "npm-shrinkwrap --dev",
|
|
"test": "NODE_PATH=\"./client/src:./admin/client/src\" jest",
|
|
"coverage": "NODE_PATH=\"./client/src:./admin/client/src\" jest --coverage",
|
|
"lint": "eslint client/src & eslint admin/client/src & sass-lint -v"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git://github.com/silverstripe/silverstripe-framework.git"
|
|
},
|
|
"keywords": [
|
|
"silverstripe",
|
|
"framework"
|
|
],
|
|
"author": "SilverStripe Ltd",
|
|
"license": "BSD-3-Clause",
|
|
"bugs": {
|
|
"url": "https://github.com/silverstripe/silverstripe-framework/issues"
|
|
},
|
|
"homepage": "https://github.com/silverstripe/silverstripe-framework#readme",
|
|
"dependencies": {
|
|
"babel-polyfill": "^6.7.4",
|
|
"blueimp-file-upload": "6.0.3",
|
|
"blueimp-load-image": "1.1.3",
|
|
"blueimp-tmpl": "1.0.2",
|
|
"bootstrap": "4.0.0-alpha.2",
|
|
"chosen-js": "^1.5.1",
|
|
"deep-equal": "^1.0.1",
|
|
"deep-freeze-strict": "^1.1.1",
|
|
"es6-promise": "^3.1.2",
|
|
"history": "^2.1.2",
|
|
"isomorphic-fetch": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
|
|
"jquery-sizes": "^0.33.0",
|
|
"json-js": "^1.1.2",
|
|
"merge": "^1.2.0",
|
|
"page.js": "^4.13.3",
|
|
"qs": "^6.1.0",
|
|
"query-string": "^3.0.3",
|
|
"react": "^15.3.1",
|
|
"react-addons-css-transition-group": "^15.3.1",
|
|
"react-bootstrap-ss": "^0.30.5",
|
|
"react-dom": "^15.3.1",
|
|
"react-redux": "^4.4.1",
|
|
"react-router": "^2.4.1",
|
|
"react-router-redux": "^4.0.5",
|
|
"redux": "https://registry.npmjs.org/redux/-/redux-3.0.5.tgz",
|
|
"redux-form": "^6.0.2",
|
|
"redux-thunk": "^2.1.0",
|
|
"tether": "^1.3.2",
|
|
"url": "^0.11.0"
|
|
},
|
|
"devDependencies": {
|
|
"autoprefixer": "^6.4.0",
|
|
"babel-core": "^6.7.4",
|
|
"babel-jest": "^9.0.3",
|
|
"babel-loader": "^6.2.5",
|
|
"babel-plugin-transform-es2015-modules-umd": "^6.6.5",
|
|
"babel-plugin-transform-object-assign": "^6.5.0",
|
|
"babel-plugin-transform-object-rest-spread": "^6.8.0",
|
|
"babel-preset-es2015": "^6.6.0",
|
|
"babel-preset-react": "^6.5.0",
|
|
"css-loader": "^0.23.1",
|
|
"eslint": "^2.5.3",
|
|
"eslint-config-airbnb": "^6.2.0",
|
|
"eslint-plugin-react": "^4.2.3",
|
|
"expose-loader": "^0.7.1",
|
|
"extract-text-webpack-plugin": "^1.0.1",
|
|
"file-loader": "^0.9.0",
|
|
"imports-loader": "^0.6.5",
|
|
"jest-cli": "^0.9.2",
|
|
"node-sass": "^3.8.0",
|
|
"npm-shrinkwrap": "^6.0.1",
|
|
"postcss-loader": "^0.10.1",
|
|
"react-addons-test-utils": "^15.3.1",
|
|
"redux-logger": "^2.6.1",
|
|
"resolve-url-loader": "^1.6.0",
|
|
"sass-lint": "^1.9.1",
|
|
"sass-loader": "^4.0.0",
|
|
"script-loader": "^0.7.0",
|
|
"semver": "^5.1.0",
|
|
"url-loader": "^0.5.7",
|
|
"webpack": "^1.13.2"
|
|
},
|
|
"jest": {
|
|
"scriptPreprocessor": "<rootDir>/node_modules/babel-jest",
|
|
"testPathDirs": [
|
|
"admin/client/src",
|
|
"client/src"
|
|
],
|
|
"testDirectoryName": "tests",
|
|
"mocksPattern": "mocks",
|
|
"unmockedModulePathPatterns": [
|
|
"<rootDir>/node_modules/react",
|
|
"<rootDir>/node_modules/qs",
|
|
"<rootDir>/node_modules/redux-form"
|
|
],
|
|
"bail": true,
|
|
"testRunner": "<rootDir>/node_modules/jest-cli/src/testRunners/jasmine/jasmine2.js"
|
|
},
|
|
"babel": {
|
|
"presets": [
|
|
"react",
|
|
"es2015"
|
|
]
|
|
}
|
|
}
|