render method

Widget render(
  1. Node node,
  2. Size parentSize, {
  3. TextEditingController? controller,
  4. ValueChanged<String>? onChanged,
  5. ValueChanged<String>? onSubmitted,
  6. String? hint,
})

Implementation

Widget render(
  figma.Node node,
  Size parentSize, {
  TextEditingController? controller,
  ValueChanged<String>? onChanged,
  ValueChanged<String>? onSubmitted,
  String? hint,
}) {
  if (!node.visible) return const SizedBox.shrink();

  final textAdapter = FigmaTextAdapter(node);
  final constraintsAdapter = FigmaConstraintsAdapter(node, parentSize);

  textAdapter.validateText();

  Widget textField = TextField(
    controller: controller,
    onChanged: onChanged,
    onSubmitted: onSubmitted,
    style: textAdapter.createTextStyle(),
    textAlign: textAdapter.getTextAlign(),
    decoration: InputDecoration(
      hintText: hint,
      hintStyle: textAdapter.createTextStyle()?.copyWith(
        color: textAdapter.createTextStyle()?.color?.withValues(alpha: 0.5),
      ),
      border: InputBorder.none,
      enabledBorder: InputBorder.none,
      focusedBorder: InputBorder.none,
      contentPadding: EdgeInsets.zero,
      isDense: true,
      isCollapsed: true,
    ),
  );

  return constraintsAdapter.applyConstraints(textField);
}