callstack / callstack/react-theme-provider
TS doesn't see props after «styled()» of «withTheme(styled.button`...`)»
- Dominant language
- JavaScript
- Stars
- 467
- Forks
- 53
- PR merge metrics
- No merged PRs in 30d
Description
Linking with https://github.com/callstack/linaria/issues/893
## Environment
* macOS Monterrey
* yarn 3 (PnP)
* TS 4.5.2
* "@linaria/core": "^3.0.0-beta.15",
* "@linaria/react": "^3.0.0-beta.15",
* "@linaria/babel-preset": "^3.0.0-beta.15",
* "@linaria/shaker": "^3.0.0-beta.15",
* "@linaria/webpack-loader": "^3.0.0-beta.16",
* "@callstack/react-theme-provider": "^3.0.7",
* bundler - storybook@6
* node 14.17.6
## Description
```ts
export const Select = () => (
);
const Button = withTheme(styled.button`
width: 100%;
`);
export const OptionButton = styled(Button)`
width: 50%;
`;
```


If I add Button directly - no error

If I remove `withTheme` - no error too

## Reproducible Demo
https://codesandbox.io/s/wild-grass-g4e0u?file=/src/App.tsx
Contributor guide
Research direction
Start with the reproducible CodeSandbox and compare the cases where Button is used directly or withTheme is removed. Trace how TypeScript infers props through styled() and withTheme(); done means OptionButton accepts the demonstrated props without an error while preserving the existing themed composition.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100