Rewrite DDM Collapsible in React

Hey, you do have an onOpen. We might as well add an onClose to match.