Files
Brenda WallaceandDaniel O'Connor 75595350bc Easier recording of harvests from the front page (#5077)
* Implement AddSeedsPicker component and enhance planting selection UI; update styles and serializers for better seed management

* Enhance PlantingPicker component: add hints and titles for harvest and seed actions; update test to reflect changes in seed saving behavior

* Enhance harvest recording: allow harvesting from crops without plantings; update forms and modals for better user experience

* Refactor code structure for improved readability and maintainability

* Remove AddSeedsPicker component and its associated tests

* Add planting picker functionality for harvesting and seed saving

- Introduced PlantingPickersController to handle JSON responses for member's plantings.
- Updated HomeHelper to include crop ID in planting picker properties.
- Refactored PlantPicker and PlantSomethingModal components to support multiple gardens.
- Created PlantingFlow component to manage planting actions (harvest and save seeds).
- Implemented RecordDialog component to handle server-rendered links for harvesting and seed saving.
- Updated various views to include data attributes for triggering the record dialog.
- Added routes for planting picker and corresponding request specs for testing.
- Adjusted styles in _plantings.scss for better layout and spacing.

* Add job management features including job creation and wishlist functionality

* Remove WishlistJobsController and associated views and tests

* Add suggestion links rendering and fix routes formatting

* Refactor AddJobModal and JobPicker components to simplify props and enhance user experience

* Update seed addition test to check dialog presence and current path

* Apply suggestion from @CloCkWeRX

---------

Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2026-10-26 21:38:12 +10:30

29 lines
1003 B
React

import React, {useState} from 'react';
import PickerButton from './PickerButton';
import PlantSomethingModal from './PlantSomethingModal';
// A button that opens the "plant something" dialog for one garden, for pages
// that are not a list of garden cards, like the home page's first steps.
// Give it gardens to ask which of them when there is more than one.
// Give it a crop to open with that crop already chosen. Once planted the page
// reloads, so it shows what is now growing.
export default function PlantPicker({label, sublabel, buttonClass, garden, gardens, crop}) {
const [open, setOpen] = useState(false);
return (
<>
<PickerButton label={label} sublabel={sublabel} className={buttonClass} onClick={() => setOpen(true)} />
{open && (
<PlantSomethingModal
garden={garden}
gardens={gardens}
crop={crop}
onClose={() => setOpen(false)}
onCreated={() => window.location.reload()}
/>
)}
</>
);
}