Split the 900-Line Component
Decide what you would build from the brief alone. Everything below it is available, but the exercise stops working if you open it first.
An OrderPage component is 900 lines: it fetches the order, holds twelve pieces of state, renders a header, a line-item table, an address editor and a payment panel, and contains four modals. Break it up.
Extracting the four regions and passing the twelve state values down as props, then noticing the prop drilling and solving it by putting all twelve into a context provider at the page level. The prop lists shrink, the diff looks like a clean refactor, and the state ownership question is now permanently unanswerable — every child can read and write everything, and any state change re-renders every consumer of the context. The prop drilling was not the problem; it was the symptom telling you the boundaries were wrong. Removing the symptom removes the feedback.