Вам необходимо объявить ширину столбца A в переменной, которая будет меняться в зависимости от того, открыт столбец B или нет.Решение для этого здесь https://codesandbox.io/s/8843zowzj9
Поскольку semantic-ui
Grid.Row
может иметь ширину 16 единиц, столбцы A будут начинаться с этой ширины и уменьшатся, если вы покажете столбец B (нажелаемой ширины) или увеличьте ее, как только вы ее спрячете.
Атрибуты stackable columns={2}
в теге Grid
делают это достаточно умным, чтобы они также складывались, как только экран достигнет мобильного разрешения.