Skip to content

Commit 7028d76

Browse files
committed
Review feedback, next round
1 parent d73aa62 commit 7028d76

File tree

4 files changed

+13
-21
lines changed

4 files changed

+13
-21
lines changed

airflow/ui/src/components/FlexibleForm/FieldDateTime.tsx

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,23 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
import { Input } from "@chakra-ui/react";
19+
import { Input, type InputProps } from "@chakra-ui/react";
2020

2121
import type { FlexibleFormElementProps } from ".";
2222

23-
export type DateTimeElementProps = {
24-
readonly subType: string;
25-
} & FlexibleFormElementProps;
26-
2723
const typeToPlaceholder: Record<string, string> = {
2824
date: "yyyy-mm-dd",
2925
"datetime-local": "yyyy-mm-ddThh:mm",
3026
time: "hh:mm",
3127
};
3228

33-
export const FieldDateTime = ({ name, param, subType }: DateTimeElementProps) => (
29+
export const FieldDateTime = ({ name, param, ...rest }: FlexibleFormElementProps & InputProps) => (
3430
<Input
3531
defaultValue={typeof param.value === "string" ? param.value : undefined}
3632
id={`element_${name}`}
3733
name={`element_${name}`}
38-
placeholder={typeToPlaceholder.subtype}
34+
placeholder={typeToPlaceholder[rest.type ?? "datetime-local"]}
3935
size="sm"
40-
type={subType}
36+
type={rest.type}
4137
/>
4238
);

airflow/ui/src/components/FlexibleForm/NormalRow.tsx renamed to airflow/ui/src/components/FlexibleForm/FieldRow.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ const isRequired = (param: ParamSpec) =>
3232
Boolean(param.schema.type) && (!Array.isArray(param.schema.type) || !param.schema.type.includes("null"));
3333

3434
/** Render a normal form row with a field that is auto-selected */
35-
export const NormalRow = ({ name, param }: FlexibleFormElementProps) => (
35+
export const FieldRow = ({ name, param }: FlexibleFormElementProps) => (
3636
<Field.Root orientation="horizontal" required={isRequired(param)}>
37-
<Stack css={{ "flex-basis": "30%" }}>
38-
<Field.Label css={{ "flex-basis": "0" }} fontSize="md">
37+
<Stack>
38+
<Field.Label fontSize="md">
3939
{param.schema.title ?? name} <Field.RequiredIndicator />
4040
</Field.Label>
4141
</Stack>

airflow/ui/src/components/FlexibleForm/FieldSelector.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ const isFieldStringArray = (fieldType: string, fieldSchema: ParamSchema) =>
8484
(!fieldSchema.items || fieldSchema.items.type === undefined || fieldSchema.items.type === "string");
8585

8686
const isFieldTime = (fieldType: string, fieldSchema: ParamSchema) =>
87-
fieldType === "string" && fieldSchema.format === "date";
87+
fieldType === "string" && fieldSchema.format === "time";
8888

8989
export const FieldSelector = ({ name, param }: FlexibleFormElementProps) => {
9090
// FUTURE: Add support for other types as described in AIP-68 via Plugins
@@ -93,11 +93,11 @@ export const FieldSelector = ({ name, param }: FlexibleFormElementProps) => {
9393
if (isFieldBool(fieldType)) {
9494
return <FieldBool name={name} param={param} />;
9595
} else if (isFieldDateTime(fieldType, param.schema)) {
96-
return <FieldDateTime name={name} param={param} subType="datetime-local" />;
96+
return <FieldDateTime name={name} param={param} type="datetime-local" />;
9797
} else if (isFieldDate(fieldType, param.schema)) {
98-
return <FieldDateTime name={name} param={param} subType="date" />;
98+
return <FieldDateTime name={name} param={param} type="date" />;
9999
} else if (isFieldTime(fieldType, param.schema)) {
100-
return <FieldDateTime name={name} param={param} subType="time" />;
100+
return <FieldDateTime name={name} param={param} type="time" />;
101101
} else if (isFieldDropdown(fieldType, param.schema)) {
102102
return <FieldDropdown name={name} param={param} />;
103103
} else if (isFieldMultiSelect(fieldType, param.schema)) {

airflow/ui/src/components/FlexibleForm/Row.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,11 @@
1919
import type { ParamSchema } from "src/queries/useDagParams";
2020

2121
import type { FlexibleFormElementProps } from ".";
22+
import { FieldRow } from "./FieldRow";
2223
import { HiddenInput } from "./HiddenInput";
23-
import { NormalRow } from "./NormalRow";
2424

2525
const isHidden = (fieldSchema: ParamSchema) => Boolean(fieldSchema.const);
2626

2727
/** Generates a form row */
2828
export const Row = ({ name, param }: FlexibleFormElementProps) =>
29-
isHidden(param.schema) ? (
30-
<HiddenInput name={name} param={param} />
31-
) : (
32-
<NormalRow name={name} param={param} />
33-
);
29+
isHidden(param.schema) ? <HiddenInput name={name} param={param} /> : <FieldRow name={name} param={param} />;

0 commit comments

Comments
 (0)