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

mapContextToProps.d.ts 3.9KB

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