For me,
Solving Problems (first understanding them).
Managing Complexity (abstract but not too far).
Naming Things (consistent and reads well).
Make it work. Make it right. Make it fast.
Nothing new, just what I notice working on my Jira-like project. I like obvious advantages: Moving things into their own files localizes their imports and makes them visible in the file system instead of being burried in a 1000 line file. It also encourages re-use.
Naming:
<Form
fields={itemFormFields}
onFieldChange={handleItemFormFieldChange}
>
Abstraction:
function useSelectItemDetailsQuery({
teamKeySeqIds,
}: {
teamKeySeqIds: string[],
}) {
const [{ data }] = useQuery({
query: SELECT_ITEM_DETAILS_QUERY,
variables: {
teamKeySeqIds,
},
});
...
}