Dashboard sipadu mbip
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

mapContextToProps.d.ts 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. // TypeScript Version: 3.0
  2. declare module 'react-context-toolbox/mapContextToProps' {
  3. import * as React from 'react';
  4. type ElementType = React.ComponentType<any> | keyof JSX.IntrinsicElements;
  5. type Omit<T, U> = Pick<T, Exclude<keyof T, keyof U>>;
  6. type GetProps<C> = C extends React.ComponentType<infer P> ? P : never;
  7. interface ContextInjectedComponent<TComponent, TInjectedProps, TExtraProps>
  8. extends React.ForwardRefExoticComponent<
  9. Omit<GetProps<TComponent>, TInjectedProps> & TExtraProps
  10. > {}
  11. // Single Context
  12. function mapContextToProps<TComponent, TContext, TContextProps, TOwnProps>(
  13. context: React.Context<TContext> | [React.Context<TContext>],
  14. mapToProps: (ctxValue: TContext, props: TOwnProps) => TContextProps,
  15. Component: TComponent,
  16. ): ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
  17. function mapContextToProps<TContext, TContextProps, TOwnProps>(
  18. context: React.Context<TContext> | [React.Context<TContext>],
  19. mapToProps: (ctxValue: TContext, props: TOwnProps) => TContextProps,
  20. ): <TComponent>(
  21. component: TComponent,
  22. ) => ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
  23. // 2 Contexts
  24. function mapContextToProps<
  25. TComponent,
  26. TContext1,
  27. TContext2,
  28. TContextProps,
  29. TOwnProps
  30. >(
  31. context: [React.Context<TContext1>, React.Context<TContext2>],
  32. mapToProps: (
  33. c1: TContext1,
  34. c2: TContext2,
  35. props: TOwnProps,
  36. ) => TContextProps,
  37. Component: TComponent,
  38. ): ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
  39. function mapContextToProps<TContext1, TContext2, TContextProps, TOwnProps>(
  40. context: [React.Context<TContext1>, React.Context<TContext2>],
  41. mapToProps: (
  42. c1: TContext1,
  43. c2: TContext2,
  44. props: TOwnProps,
  45. ) => TContextProps,
  46. ): <TComponent>(
  47. component: TComponent,
  48. ) => ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
  49. // 3 Contexts
  50. function mapContextToProps<
  51. TComponent,
  52. TContext1,
  53. TContext2,
  54. TContext3,
  55. TContextProps,
  56. TOwnProps
  57. >(
  58. context: [
  59. React.Context<TContext1>,
  60. React.Context<TContext2>,
  61. React.Context<TContext3>
  62. ],
  63. mapToProps: (
  64. c1: TContext1,
  65. c2: TContext2,
  66. c3: TContext3,
  67. props: TOwnProps,
  68. ) => TContextProps,
  69. Component: TComponent,
  70. ): ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
  71. function mapContextToProps<
  72. TContext1,
  73. TContext2,
  74. TContext3,
  75. TContextProps,
  76. TOwnProps
  77. >(
  78. context: [
  79. React.Context<TContext1>,
  80. React.Context<TContext2>,
  81. React.Context<TContext3>
  82. ],
  83. mapToProps: (
  84. c1: TContext1,
  85. c2: TContext2,
  86. c3: TContext3,
  87. props: TOwnProps,
  88. ) => TContextProps,
  89. ): <TComponent>(
  90. component: TComponent,
  91. ) => ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
  92. // 4 Contexts
  93. function mapContextToProps<
  94. TComponent,
  95. TContext1,
  96. TContext2,
  97. TContext3,
  98. TContext4,
  99. TContextProps,
  100. TOwnProps
  101. >(
  102. context: [
  103. React.Context<TContext1>,
  104. React.Context<TContext2>,
  105. React.Context<TContext3>,
  106. React.Context<TContext4>
  107. ],
  108. mapToProps: (
  109. c1: TContext1,
  110. c2: TContext2,
  111. c3: TContext3,
  112. c4: TContext4,
  113. props: TOwnProps,
  114. ) => TContextProps,
  115. Component: TComponent,
  116. ): ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
  117. function mapContextToProps<
  118. TContext1,
  119. TContext2,
  120. TContext3,
  121. TContext4,
  122. TContextProps,
  123. TOwnProps
  124. >(
  125. context: [
  126. React.Context<TContext1>,
  127. React.Context<TContext2>,
  128. React.Context<TContext3>,
  129. React.Context<TContext4>
  130. ],
  131. mapToProps: (
  132. c1: TContext1,
  133. c2: TContext2,
  134. c3: TContext3,
  135. c4: TContext4,
  136. props: TOwnProps,
  137. ) => TContextProps,
  138. ): <TComponent>(
  139. component: TComponent,
  140. ) => ContextInjectedComponent<TComponent, TContextProps, TOwnProps>;
  141. export default mapContextToProps;
  142. }