shinkansen-sprockets 1.1.462 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/babel.config.cjs +1 -0
  2. package/eslint.config.mjs +11 -56
  3. package/index.d.mts +122 -13
  4. package/package.json +8 -3
  5. package/src/common/index.d.mts +1 -3
  6. package/src/common/index.mjs +1 -7
  7. package/src/components/common/text-content/index.cjs +1 -1
  8. package/src/components/common/text-content/index.d.mts +3 -4
  9. package/src/components/common/text-content/index.jsx +7 -6
  10. package/src/components/common/visually-hidden-text/index.cjs +1 -1
  11. package/src/components/common/visually-hidden-text/index.d.mts +3 -4
  12. package/src/components/common/visually-hidden-text/index.jsx +7 -6
  13. package/src/components/description/index.cjs +1 -1
  14. package/src/components/description/index.d.mts +10 -5
  15. package/src/components/description/index.jsx +12 -3
  16. package/src/components/error-message/index.cjs +1 -1
  17. package/src/components/error-message/index.d.mts +20 -5
  18. package/src/components/error-message/index.jsx +30 -15
  19. package/src/components/group/index.cjs +1 -1
  20. package/src/components/group/index.d.mts +12 -7
  21. package/src/components/group/index.jsx +8 -15
  22. package/src/components/title/index.cjs +1 -1
  23. package/src/components/title/index.d.mts +16 -5
  24. package/src/components/title/index.jsx +18 -4
  25. package/src/index.d.mts +8 -0
  26. package/src/sprockets/check-answers/group/answer-title.cjs +1 -0
  27. package/src/sprockets/check-answers/group/answer-title.jsx +2 -2
  28. package/src/sprockets/check-answers/group/answer-value.cjs +1 -0
  29. package/src/sprockets/check-answers/group/answer-value.jsx +29 -12
  30. package/src/sprockets/check-answers/group/change-answer.cjs +1 -0
  31. package/src/sprockets/check-answers/group/change-answer.jsx +17 -7
  32. package/src/sprockets/check-answers/group/index.cjs +1 -1
  33. package/src/sprockets/check-answers/group/index.d.mts +7 -1
  34. package/src/sprockets/check-answers/group/index.jsx +43 -28
  35. package/src/sprockets/check-answers/index.cjs +1 -1
  36. package/src/sprockets/check-answers/index.d.mts +5 -1
  37. package/src/sprockets/check-answers/index.jsx +25 -9
  38. package/src/sprockets/check-answers/title/index.cjs +1 -1
  39. package/src/sprockets/check-answers/title/index.d.mts +5 -1
  40. package/src/sprockets/check-answers/title/index.jsx +8 -5
  41. package/src/sprockets/error-summary/group/index.cjs +1 -1
  42. package/src/sprockets/error-summary/group/index.d.mts +7 -1
  43. package/src/sprockets/error-summary/group/index.jsx +31 -23
  44. package/src/sprockets/error-summary/index.cjs +1 -1
  45. package/src/sprockets/error-summary/index.d.mts +5 -1
  46. package/src/sprockets/error-summary/index.jsx +19 -9
  47. package/src/sprockets/error-summary/title/index.cjs +1 -1
  48. package/src/sprockets/error-summary/title/index.d.mts +5 -1
  49. package/src/sprockets/error-summary/title/index.jsx +8 -5
  50. package/src/sprockets/fieldset/description/index.cjs +1 -1
  51. package/src/sprockets/fieldset/description/index.jsx +0 -5
  52. package/src/sprockets/fieldset/error-message/index.cjs +1 -1
  53. package/src/sprockets/fieldset/error-message/index.jsx +0 -5
  54. package/src/sprockets/fieldset/group/index.cjs +1 -1
  55. package/src/sprockets/fieldset/group/index.d.mts +7 -1
  56. package/src/sprockets/fieldset/group/index.jsx +10 -5
  57. package/src/sprockets/fieldset/index.cjs +1 -1
  58. package/src/sprockets/fieldset/index.d.mts +11 -1
  59. package/src/sprockets/fieldset/index.jsx +22 -17
  60. package/src/sprockets/fieldset/title/index.cjs +1 -1
  61. package/src/sprockets/fieldset/title/index.d.mts +5 -1
  62. package/src/sprockets/fieldset/title/index.jsx +8 -4
  63. package/src/sprockets/index.cjs +1 -4
  64. package/src/sprockets/index.d.mts +14 -8
  65. package/src/sprockets/index.jsx +9 -16
  66. package/src/transformers/check-answers/index.d.mts +8 -0
  67. package/src/transformers/check-answers/index.mjs +2 -2
  68. package/src/transformers/common/index.mjs +4 -4
  69. package/src/transformers/error-message/index.d.mts +8 -0
  70. package/src/transformers/error-message/index.mjs +12 -4
  71. package/src/transformers/error-summary/index.d.mts +8 -0
  72. package/src/transformers/error-summary/index.mjs +10 -6
@@ -1,9 +1,12 @@
1
1
  /**
2
- * CheckAnswersSprocket component
3
- *
4
- * @typedef {import('shinkansen-sprockets/sprockets').SprocketProps} SprocketProps
2
+ * @typedef {SprocketsTypes.AnswerDefinitionType} AnswerDefinitionType
3
+ * @typedef {SprocketsTypes.Sprockets.Sprocket.SprocketProps} SprocketProps
4
+ * @typedef {SprocketsTypes.Sprockets.Sprocket.CheckAnswers.CheckAnswersProps} CheckAnswersProps
5
5
  */
6
6
 
7
+ /**
8
+ * CheckAnswersSprocket component
9
+ */
7
10
  import React from 'react'
8
11
  import PropTypes from 'prop-types'
9
12
 
@@ -13,21 +16,34 @@ import Sprocket from '#sprockets/sprockets'
13
16
  import Title from './title/index.jsx'
14
17
  import Group from './group/index.jsx'
15
18
 
19
+ /**
20
+ * @type {AnswerDefinitionType[]}
21
+ */
16
22
  const DEFAULT_CHECK_ANSWERS = []
17
23
 
24
+ /**
25
+ * @extends {Sprocket<SprocketProps & CheckAnswersProps>}
26
+ */
18
27
  export default class CheckAnswersSprocket extends Sprocket {
19
28
  getClassName () {
20
29
  return classnames(super.getClassName(), 'check-answers')
21
30
  }
22
31
 
23
32
  /**
24
- * @param {SprocketProps} props
25
- * @returns {boolean}
33
+ * @param {CheckAnswersProps} props
34
+ * @returns {boolean}
26
35
  */
27
- shouldComponentUpdate (props, state) {
36
+ shouldComponentUpdate (props) {
37
+ const {
38
+ checkAnswers,
39
+ ...superProps
40
+ } = props
41
+
42
+ console.log('checkAnswers', checkAnswers)
43
+
28
44
  return (
29
- super.shouldComponentUpdate(props, state) ||
30
- (props.checkAnswers !== this.props.checkAnswers)
45
+ super.shouldComponentUpdate(superProps) ||
46
+ (checkAnswers !== this.props.checkAnswers)
31
47
  )
32
48
  }
33
49
 
@@ -75,5 +91,5 @@ export default class CheckAnswersSprocket extends Sprocket {
75
91
 
76
92
  CheckAnswersSprocket.propTypes = {
77
93
  ...Sprocket.propTypes,
78
- checkAnswers: PropTypes.arrayOf(PropTypes.shape())
94
+ checkAnswers: PropTypes.arrayOf(PropTypes.shape({}))
79
95
  }
@@ -11,7 +11,7 @@ const log = debug('shinkansen-sprockets/sprockets/check-answers/title')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: component // @ts-ignore
15
15
  } = require('./index.jsx')
16
16
 
17
17
  module.exports = component
@@ -1,9 +1,13 @@
1
1
  declare module '#sprockets/sprockets/check-answers/title' {
2
2
  import Title from '#sprockets/components/title'
3
3
 
4
- export default class CheckAnswersTitle extends Title {}
4
+ type CheckAnswersProps = SprocketsTypes.Components.Title.CheckAnswers.CheckAnswersProps
5
+
6
+ export default class CheckAnswersTitle<P extends CheckAnswersProps> extends Title<P> {}
5
7
  }
6
8
 
7
9
  declare module 'shinkansen-sprockets/sprockets/check-answers/title' {
10
+ export type CheckAnswersProps = SprocketsTypes.Components.Title.CheckAnswers.CheckAnswersProps
11
+
8
12
  export { default } from '#sprockets/sprockets/check-answers/title'
9
13
  }
@@ -1,11 +1,18 @@
1
1
  /**
2
- * CheckAnswersTitle component
2
+ * @typedef {SprocketsTypes.Components.Title.TitleProps} TitleProps
3
+ * @typedef {SprocketsTypes.Components.Title.CheckAnswers.CheckAnswersProps} CheckAnswersProps
3
4
  */
4
5
 
6
+ /**
7
+ * CheckAnswersTitle component
8
+ */
5
9
  import React from 'react'
6
10
  import classnames from 'classnames'
7
11
  import Title from '#sprockets/components/title'
8
12
 
13
+ /**
14
+ * @extends {Title<TitleProps & CheckAnswersProps>}
15
+ */
9
16
  export default class CheckAnswersTitle extends Title {
10
17
  getClassName () {
11
18
  return classnames(super.getClassName(), 'check-answers')
@@ -23,7 +30,3 @@ export default class CheckAnswersTitle extends Title {
23
30
  return null
24
31
  }
25
32
  }
26
-
27
- CheckAnswersTitle.propTypes = {
28
- ...Title.propTypes
29
- }
@@ -11,7 +11,7 @@ const log = debug('shinkansen-sprockets/sprockets/error-summary/group')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: component // @ts-ignore
15
15
  } = require('./index.jsx')
16
16
 
17
17
  module.exports = component
@@ -1,9 +1,15 @@
1
1
  declare module '#sprockets/sprockets/error-summary/group' {
2
2
  import Group from '#sprockets/components/group'
3
3
 
4
- export default class ErrorSummaryGroup extends Group {}
4
+ type ErrorSummaryProps = SprocketsTypes.Components.Group.ErrorSummary.ErrorSummaryProps
5
+ type ErrorSummaryState = SprocketsTypes.Components.Group.ErrorSummary.ErrorSummaryState
6
+
7
+ export default class ErrorSummaryGroup<P extends ErrorSummaryProps, S extends ErrorSummaryState> extends Group<P, S> {}
5
8
  }
6
9
 
7
10
  declare module 'shinkansen-sprockets/sprockets/error-summary/group' {
11
+ export type ErrorSummaryProps = SprocketsTypes.Components.Group.ErrorSummary.ErrorSummaryProps
12
+ export type ErrorSummaryState = SprocketsTypes.Components.Group.ErrorSummary.ErrorSummaryState
13
+
8
14
  export { default } from '#sprockets/sprockets/error-summary/group'
9
15
  }
@@ -1,22 +1,22 @@
1
1
  /**
2
- * ErrorSummaryGroup component
3
- *
4
- * @typedef {import('shinkansen-sprockets/components/group').GroupProps} GroupProps
5
- *
6
- * Group state
7
- *
8
- * @typedef {Object} GroupState
9
- * @property {{}} [errorSummary]
2
+ * @typedef {SprocketsTypes.ErrorDefinitionType} ErrorDefinitionType
3
+ * @typedef {SprocketsTypes.Components.Group.GroupProps} GroupProps
4
+ * @typedef {SprocketsTypes.Components.Group.GroupState} GroupState
5
+ * @typedef {SprocketsTypes.Components.Group.ErrorSummary.ErrorSummaryProps} ErrorSummaryProps
6
+ * @typedef {SprocketsTypes.Components.Group.ErrorSummary.ErrorSummaryState} ErrorSummaryState
10
7
  */
11
8
 
9
+ /**
10
+ * ErrorSummaryGroup component
11
+ */
12
12
  import React from 'react'
13
13
  import PropTypes from 'prop-types'
14
14
 
15
- import debug from 'debug'
16
-
17
15
  import equal from 'fast-deep-equal'
18
16
  import classnames from 'classnames'
19
17
 
18
+ import debug from 'debug'
19
+
20
20
  import Group from '#sprockets/components/group'
21
21
 
22
22
  import transform from '#sprockets/transformers/error-summary'
@@ -26,11 +26,18 @@ import {
26
26
 
27
27
  import TextContent from '#sprockets/components/common/text-content'
28
28
 
29
+ /**
30
+ * @type {ErrorDefinitionType[]}
31
+ */
29
32
  const DEFAULT_ERROR_SUMMARY = []
30
33
 
31
34
  const log = debug('shinkansen-sprockets/sprockets/error-summary/group')
32
35
 
33
- /* eslint-disable-next-line react/prop-types */
36
+ /**
37
+ * @param {ErrorDefinitionType} error
38
+ * @param {number} index
39
+ * @returns {React.JSX.Element}
40
+ */
34
41
  function render (error, index) {
35
42
  log('render')
36
43
 
@@ -48,13 +55,14 @@ function render (error, index) {
48
55
  )
49
56
  }
50
57
 
58
+ /**
59
+ * @extends {Group<GroupProps & ErrorSummaryProps, GroupState & ErrorSummaryState>}
60
+ */
51
61
  export default class ErrorSummaryGroup extends Group {
52
62
  /**
53
- * @type {GroupState}
63
+ * @type {ErrorSummaryState}
54
64
  */
55
- state = {
56
- errorSummary: DEFAULT_ERROR_SUMMARY
57
- }
65
+ state = {}
58
66
 
59
67
  getClassName () {
60
68
  return classnames(super.getClassName(), 'error-summary')
@@ -63,9 +71,9 @@ export default class ErrorSummaryGroup extends Group {
63
71
  /**
64
72
  * Compare latest 'props' with 'state' for changes to 'errorSummary'
65
73
  *
66
- * @param {GroupProps} props Latest props
67
- * @param {GroupState} state Current state
68
- * @returns {GroupState}
74
+ * @param {ErrorSummaryProps} props Latest props
75
+ * @param {ErrorSummaryState} state Current state
76
+ * @returns {ErrorSummaryState}
69
77
  */
70
78
  static getDerivedStateFromProps ({ errorSummary }, { errorSummary: E }) {
71
79
  return {
@@ -76,9 +84,9 @@ export default class ErrorSummaryGroup extends Group {
76
84
  /**
77
85
  * Compare latest 'props' with 'state' for changes to 'errorSummary'
78
86
  *
79
- * @param {GroupProps} props Latest props
80
- * @param {GroupState} state Current state
81
- * @returns {boolean}
87
+ * @param {ErrorSummaryProps} props Latest props
88
+ * @param {ErrorSummaryState} state Current state
89
+ * @returns {boolean}
82
90
  */
83
91
  shouldComponentUpdate (props, state) {
84
92
  const {
@@ -89,7 +97,7 @@ export default class ErrorSummaryGroup extends Group {
89
97
  errorSummary: E = DEFAULT_ERROR_SUMMARY
90
98
  } = this.state
91
99
 
92
- return (e !== E)
100
+ return !equal(e, E)
93
101
  }
94
102
 
95
103
  render () {
@@ -117,5 +125,5 @@ export default class ErrorSummaryGroup extends Group {
117
125
 
118
126
  ErrorSummaryGroup.propTypes = {
119
127
  ...Group.propTypes,
120
- errorSummary: PropTypes.arrayOf(PropTypes.shape())
128
+ errorSummary: PropTypes.arrayOf(PropTypes.shape({}))
121
129
  }
@@ -11,7 +11,7 @@ const log = debug('shinkansen-sprockets/sprockets/error-summary')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: component // @ts-ignore
15
15
  } = require('./index.jsx')
16
16
 
17
17
  module.exports = component
@@ -1,9 +1,13 @@
1
1
  declare module '#sprockets/sprockets/error-summary' {
2
2
  import Sprocket from '#sprockets/sprockets'
3
3
 
4
- export default class ErrorSummarySprocket extends Sprocket {}
4
+ type ErrorSummaryProps = SprocketsTypes.Sprockets.Sprocket.ErrorSummary.ErrorSummaryProps
5
+
6
+ export default class ErrorSummarySprocket<P extends ErrorSummaryProps> extends Sprocket<P> {}
5
7
  }
6
8
 
7
9
  declare module 'shinkansen-sprockets/sprockets/error-summary' {
10
+ export type ErrorSummaryProps = SprocketsTypes.Sprockets.Sprocket.ErrorSummary.ErrorSummaryProps
11
+
8
12
  export { default } from '#sprockets/sprockets/error-summary'
9
13
  }
@@ -1,9 +1,11 @@
1
1
  /**
2
- * ErrorSummarySprocket component
3
- *
4
- * @typedef {import('shinkansen-sprockets/sprockets').SprocketProps} SprocketProps
2
+ * @typedef {SprocketsTypes.Sprockets.Sprocket.SprocketProps} SprocketProps
3
+ * @typedef {SprocketsTypes.Sprockets.Sprocket.ErrorSummary.ErrorSummaryProps} ErrorSummaryProps
5
4
  */
6
5
 
6
+ /**
7
+ * ErrorSummarySprocket component
8
+ */
7
9
  import React from 'react'
8
10
  import PropTypes from 'prop-types'
9
11
 
@@ -15,19 +17,27 @@ import Group from './group/index.jsx'
15
17
 
16
18
  const DEFAULT_ERROR_SUMMARY = []
17
19
 
20
+ /**
21
+ * @extends {Sprocket<SprocketProps & ErrorSummaryProps>}
22
+ */
18
23
  export default class ErrorSummarySprocket extends Sprocket {
19
24
  getClassName () {
20
25
  return classnames(super.getClassName(), 'error-summary')
21
26
  }
22
27
 
23
28
  /**
24
- * @param {SprocketProps} props
25
- * @returns {boolean}
29
+ * @param {ErrorSummaryProps} props
30
+ * @returns {boolean}
26
31
  */
27
- shouldComponentUpdate (props, state) {
32
+ shouldComponentUpdate (props) {
33
+ const {
34
+ errorSummary,
35
+ ...superProps
36
+ } = props
37
+
28
38
  return (
29
- super.shouldComponentUpdate(props, state) ||
30
- (props.errorSummary !== this.props.errorSummary)
39
+ super.shouldComponentUpdate(superProps) ||
40
+ (errorSummary !== this.props.errorSummary)
31
41
  )
32
42
  }
33
43
 
@@ -77,5 +87,5 @@ export default class ErrorSummarySprocket extends Sprocket {
77
87
 
78
88
  ErrorSummarySprocket.propTypes = {
79
89
  ...Sprocket.propTypes,
80
- errorSummary: PropTypes.arrayOf(PropTypes.shape())
90
+ errorSummary: PropTypes.arrayOf(PropTypes.shape({}))
81
91
  }
@@ -11,7 +11,7 @@ const log = debug('shinkansen-sprockets/sprockets/error-summary/title')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: component // @ts-ignore
15
15
  } = require('./index.jsx')
16
16
 
17
17
  module.exports = component
@@ -1,9 +1,13 @@
1
1
  declare module '#sprockets/sprockets/error-summary/title' {
2
2
  import Title from '#sprockets/components/title'
3
3
 
4
- export default class ErrorSummaryTitle extends Title {}
4
+ type ErrorSummaryProps = SprocketsTypes.Components.Title.ErrorSummary.ErrorSummaryProps
5
+
6
+ export default class ErrorSummaryTitle<P extends ErrorSummaryProps> extends Title<P> {}
5
7
  }
6
8
 
7
9
  declare module 'shinkansen-sprockets/sprockets/error-summary/title' {
10
+ export type ErrorSummaryProps = SprocketsTypes.Components.Title.ErrorSummary.ErrorSummaryProps
11
+
8
12
  export { default } from '#sprockets/sprockets/error-summary/title'
9
13
  }
@@ -1,11 +1,18 @@
1
1
  /**
2
- * ErrorSummaryTitle component
2
+ * @typedef {SprocketsTypes.Components.Title.TitleProps} TitleProps
3
+ * @typedef {SprocketsTypes.Components.Title.ErrorSummary.ErrorSummaryProps} ErrorSummaryProps
3
4
  */
4
5
 
6
+ /**
7
+ * ErrorSummaryTitle component
8
+ */
5
9
  import React from 'react'
6
10
  import classnames from 'classnames'
7
11
  import Title from '#sprockets/components/title'
8
12
 
13
+ /**
14
+ * @extends {Title<TitleProps & ErrorSummaryProps>}
15
+ */
9
16
  export default class ErrorSummaryTitle extends Title {
10
17
  getClassName () {
11
18
  return classnames(super.getClassName(), 'error-summary')
@@ -23,7 +30,3 @@ export default class ErrorSummaryTitle extends Title {
23
30
  return null
24
31
  }
25
32
  }
26
-
27
- ErrorSummaryTitle.propTypes = {
28
- ...Title.propTypes
29
- }
@@ -11,7 +11,7 @@ const log = debug('shinkansen-sprockets/sprockets/fieldset/description')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: component // @ts-ignore
15
15
  } = require('./index.jsx')
16
16
 
17
17
  module.exports = component
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * FieldsetDescription component
3
3
  */
4
-
5
4
  import classnames from 'classnames'
6
5
  import Description from '#sprockets/components/description'
7
6
 
@@ -10,7 +9,3 @@ export default class FieldsetDescription extends Description {
10
9
  return classnames(super.getClassName(), 'fieldset')
11
10
  }
12
11
  }
13
-
14
- FieldsetDescription.propTypes = {
15
- ...Description.propTypes
16
- }
@@ -11,7 +11,7 @@ const log = debug('shinkansen-sprockets/sprockets/fieldset/error-message')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: component // @ts-ignore
15
15
  } = require('./index.jsx')
16
16
 
17
17
  module.exports = component
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * FieldsetErrorMessage component
3
3
  */
4
-
5
4
  import classnames from 'classnames'
6
5
  import ErrorMessage from '#sprockets/components/error-message'
7
6
 
@@ -10,7 +9,3 @@ export default class FieldsetErrorMessage extends ErrorMessage {
10
9
  return classnames(super.getClassName(), 'fieldset')
11
10
  }
12
11
  }
13
-
14
- FieldsetErrorMessage.propTypes = {
15
- ...ErrorMessage.propTypes
16
- }
@@ -11,7 +11,7 @@ const log = debug('shinkansen-sprockets/sprockets/fieldset/group')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: component // @ts-ignore
15
15
  } = require('./index.jsx')
16
16
 
17
17
  module.exports = component
@@ -1,9 +1,15 @@
1
1
  declare module '#sprockets/sprockets/fieldset/group' {
2
2
  import Group from '#sprockets/components/group'
3
3
 
4
- export default class FieldsetGroup extends Group {}
4
+ type FieldsetProps = SprocketsTypes.Components.Group.Fieldset.FieldsetProps
5
+ type FieldsetState = SprocketsTypes.Components.Group.Fieldset.FieldsetState
6
+
7
+ export default class FieldsetGroup<P extends FieldsetProps, S extends FieldsetState> extends Group<P, S> {}
5
8
  }
6
9
 
7
10
  declare module 'shinkansen-sprockets/sprockets/fieldset/group' {
11
+ export type FieldsetProps = SprocketsTypes.Components.Group.Fieldset.FieldsetProps
12
+ export type FieldsetState = SprocketsTypes.Components.Group.Fieldset.FieldsetState
13
+
8
14
  export { default } from '#sprockets/sprockets/fieldset/group'
9
15
  }
@@ -1,16 +1,21 @@
1
1
  /**
2
- * FieldsetGroup component
2
+ * @typedef {SprocketsTypes.Components.Group.GroupProps} GroupProps
3
+ * @typedef {SprocketsTypes.Components.Group.GroupState} GroupState
4
+ * @typedef {SprocketsTypes.Components.Group.Fieldset.FieldsetProps} FieldsetProps
5
+ * @typedef {SprocketsTypes.Components.Group.Fieldset.FieldsetState} FieldsetState
3
6
  */
4
7
 
8
+ /**
9
+ * FieldsetGroup component
10
+ */
5
11
  import classnames from 'classnames'
6
12
  import Group from '#sprockets/components/group'
7
13
 
14
+ /**
15
+ * @extends {Group<GroupProps & FieldsetProps, GroupState & FieldsetState>}
16
+ */
8
17
  export default class FieldsetGroup extends Group {
9
18
  getClassName () {
10
19
  return classnames(super.getClassName(), 'fieldset')
11
20
  }
12
21
  }
13
-
14
- FieldsetGroup.propTypes = {
15
- ...Group.propTypes
16
- }
@@ -11,7 +11,7 @@ const log = debug('shinkansen-sprockets/sprockets/fieldset')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: component // @ts-ignore
15
15
  } = require('./index.jsx')
16
16
 
17
17
  module.exports = component
@@ -1,9 +1,19 @@
1
1
  declare module '#sprockets/sprockets/fieldset' {
2
+ import type React from 'react'
3
+
2
4
  import Sprocket from '#sprockets/sprockets'
3
5
 
4
- export default class FieldsetSprocket extends Sprocket {}
6
+ type FieldsetProps = SprocketsTypes.Sprockets.Sprocket.Fieldset.FieldsetProps
7
+
8
+ export default class FieldsetSprocket<P extends FieldsetProps> extends Sprocket<P> {
9
+ renderDescription (): React.JSX.Element | null
10
+
11
+ renderErrorMessage (): React.JSX.Element | null
12
+ }
5
13
  }
6
14
 
7
15
  declare module 'shinkansen-sprockets/sprockets/fieldset' {
16
+ export type FieldsetProps = SprocketsTypes.Sprockets.Sprocket.Fieldset.FieldsetProps
17
+
8
18
  export { default } from '#sprockets/sprockets/fieldset'
9
19
  }
@@ -1,9 +1,11 @@
1
1
  /**
2
- * FieldsetSprocket component
3
- *
4
- * @typedef {import('shinkansen-sprockets/sprockets').SprocketProps} SprocketProps
2
+ * @typedef {SprocketsTypes.Sprockets.Sprocket.SprocketProps} SprocketProps
3
+ * @typedef {SprocketsTypes.Sprockets.Sprocket.Fieldset.FieldsetProps} FieldsetProps
5
4
  */
6
5
 
6
+ /**
7
+ * FieldsetSprocket component
8
+ */
7
9
  import React from 'react'
8
10
  import PropTypes from 'prop-types'
9
11
 
@@ -11,15 +13,14 @@ import classnames from 'classnames'
11
13
 
12
14
  import Sprocket from '#sprockets/sprockets'
13
15
 
14
- import {
15
- DEFAULT_HANDLE_CHANGE
16
- } from '#sprockets/common'
17
-
18
16
  import Title from './title/index.jsx'
19
17
  import Description from './description/index.jsx'
20
18
  import ErrorMessage from './error-message/index.jsx'
21
19
  import Group from './group/index.jsx'
22
20
 
21
+ /**
22
+ * @extends {Sprocket<SprocketProps & FieldsetProps>}
23
+ */
23
24
  export default class FieldsetSprocket extends Sprocket {
24
25
  getClassName () {
25
26
  const {
@@ -30,14 +31,20 @@ export default class FieldsetSprocket extends Sprocket {
30
31
  }
31
32
 
32
33
  /**
33
- * @param {SprocketProps} props
34
- * @returns {boolean}
34
+ * @param {FieldsetProps} props
35
+ * @returns {boolean}
35
36
  */
36
- shouldComponentUpdate (props, state) {
37
+ shouldComponentUpdate (props) {
38
+ const {
39
+ description,
40
+ errorMessage,
41
+ ...superProps
42
+ } = props
43
+
37
44
  return (
38
- super.shouldComponentUpdate(props, state) ||
39
- (props.description !== this.props.description) ||
40
- (props.errorMessage !== this.props.errorMessage)
45
+ super.shouldComponentUpdate(superProps) ||
46
+ (description !== this.props.description) ||
47
+ (errorMessage !== this.props.errorMessage)
41
48
  )
42
49
  }
43
50
 
@@ -79,13 +86,11 @@ export default class FieldsetSprocket extends Sprocket {
79
86
 
80
87
  renderGroup () {
81
88
  const {
82
- onChange = DEFAULT_HANDLE_CHANGE,
83
89
  children
84
90
  } = this.props
85
91
 
86
92
  return (
87
- <Group
88
- onChange={onChange}>
93
+ <Group>
89
94
  {this.renderTitle()}
90
95
  {this.renderDescription()}
91
96
  {this.renderErrorMessage()}
@@ -100,7 +105,7 @@ FieldsetSprocket.propTypes = {
100
105
  description: PropTypes.string,
101
106
  errorMessage: PropTypes.shape({
102
107
  type: PropTypes.string.isRequired,
103
- params: PropTypes.shape().isRequired,
108
+ params: PropTypes.shape({}).isRequired,
104
109
  uri: PropTypes.string.isRequired
105
110
  })
106
111
  }
@@ -11,7 +11,7 @@ const log = debug('shinkansen-sprockets/sprockets/fieldset/title')
11
11
  log('`shinkansen` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: component // @ts-ignore
15
15
  } = require('./index.jsx')
16
16
 
17
17
  module.exports = component
@@ -1,9 +1,13 @@
1
1
  declare module '#sprockets/sprockets/fieldset/title' {
2
2
  import Title from '#sprockets/components/title'
3
3
 
4
- export default class FieldsetTitle extends Title {}
4
+ type FieldsetProps = SprocketsTypes.Components.Title.Fieldset.FieldsetProps
5
+
6
+ export default class FieldsetTitle<P extends FieldsetProps> extends Title<P> {}
5
7
  }
6
8
 
7
9
  declare module 'shinkansen-sprockets/sprockets/fieldset/title' {
10
+ export type FieldsetProps = SprocketsTypes.Components.Title.Fieldset.FieldsetProps
11
+
8
12
  export { default } from '#sprockets/sprockets/fieldset/title'
9
13
  }
@@ -1,15 +1,19 @@
1
+ /**
2
+ * @typedef {SprocketsTypes.Components.Title.TitleProps} TitleProps
3
+ * @typedef {SprocketsTypes.Components.Title.Fieldset.FieldsetProps} FieldsetProps
4
+ */
5
+
1
6
  /**
2
7
  * FieldsetTitle component
3
8
  */
4
9
  import classnames from 'classnames'
5
10
  import Title from '#sprockets/components/title'
6
11
 
12
+ /**
13
+ * @extends {Title<TitleProps & FieldsetProps>}
14
+ */
7
15
  export default class FieldsetTitle extends Title {
8
16
  getClassName () {
9
17
  return classnames(super.getClassName(), 'fieldset')
10
18
  }
11
19
  }
12
-
13
- FieldsetTitle.propTypes = {
14
- ...Title.propTypes
15
- }