Skip to content

Commit 8b2497d

Browse files
committed
[@mantine/core] FileInput: Add missing placeholder Styles API reference
1 parent 4b1da1c commit 8b2497d

File tree

3 files changed

+29
-4
lines changed

3 files changed

+29
-4
lines changed

packages/@docs/styles-api/src/data/FileInput.styles-api.ts

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export const FileInputStylesApi: StylesApiData<FileInputFactory> = {
66
selectors: {
77
...InputStylesApi.selectors,
88
...InputWrapperStylesApi.selectors,
9+
placeholder: 'Placeholder text',
910
},
1011

1112
vars: {},

packages/@mantine/core/src/components/FileInput/FileInput.test.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ import { FileInput, FileInputProps } from './FileInput';
44

55
const defaultProps: FileInputProps = {
66
...inputDefaultProps,
7+
placeholder: 'test-placeholder',
78
};
89

910
describe('@mantine/core/FileInput', () => {
1011
tests.axe([<FileInput aria-label="test-label" key="1" />]);
1112

12-
tests.itSupportsSystemProps<FileInputProps, __InputStylesNames>({
13+
tests.itSupportsSystemProps<FileInputProps, __InputStylesNames | 'placeholder'>({
1314
component: FileInput,
1415
props: defaultProps,
1516
mod: true,

packages/@mantine/core/src/components/FileInput/FileInput.tsx

+26-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
import { useEffect, useRef } from 'react';
22
import { useMergedRef, useUncontrolled } from '@mantine/hooks';
3-
import { BoxProps, ElementProps, factory, Factory, StylesApiProps, useProps } from '../../core';
3+
import {
4+
BoxProps,
5+
ElementProps,
6+
factory,
7+
Factory,
8+
StylesApiProps,
9+
useProps,
10+
useResolvedStylesApi,
11+
} from '../../core';
412
import { CloseButton } from '../CloseButton';
513
import { FileButton } from '../FileButton';
614
import { __BaseInputProps, __InputStylesNames, Input, InputVariant } from '../Input';
@@ -62,7 +70,7 @@ export interface FileInputProps<Multiple = false>
6270
export type FileInputFactory = Factory<{
6371
props: FileInputProps;
6472
ref: HTMLButtonElement;
65-
stylesNames: __InputStylesNames;
73+
stylesNames: __InputStylesNames | 'placeholder';
6674
variant: InputVariant;
6775
}>;
6876

@@ -99,10 +107,17 @@ const _FileInput = factory<FileInputFactory>((_props, ref) => {
99107
placeholder,
100108
component,
101109
resetRef: resetRefProp,
110+
classNames,
111+
styles,
102112
...others
103113
} = props;
104114

105115
const resetRef = useRef<() => void>(null);
116+
const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<FileInputFactory>({
117+
classNames,
118+
styles,
119+
props,
120+
});
106121

107122
const [_value, setValue] = useUncontrolled<null | File | File[]>({
108123
value,
@@ -159,9 +174,17 @@ const _FileInput = factory<FileInputFactory>((_props, ref) => {
159174
__stylesApiProps={props}
160175
unstyled={unstyled}
161176
size={size}
177+
classNames={classNames}
178+
styles={styles}
162179
>
163180
{!hasValue ? (
164-
<Input.Placeholder>{placeholder}</Input.Placeholder>
181+
<Input.Placeholder
182+
__staticSelector="FileInput"
183+
classNames={resolvedClassNames}
184+
styles={resolvedStyles}
185+
>
186+
{placeholder}
187+
</Input.Placeholder>
165188
) : (
166189
<ValueComponent value={_value} />
167190
)}

0 commit comments

Comments
 (0)