summaryrefslogtreecommitdiff
path: root/source/helpers/add-after-branch-selector.tsx
blob: 5ed5d35a15c1f5db5079b8ba7166df4f220cd49f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import React from 'dom-chef';
import select from 'select-dom';
import elementReady from 'element-ready';

import {wrapAll} from './dom-utils.js';

export default async function addAfterBranchSelector(button: Element): Promise<void> {
	button.classList.add('ml-2');
	const branchSelector = (await elementReady('#branch-select-menu', {waitForChildren: false}))!;
	const branchSelectorWrapper = branchSelector.closest('.position-relative')!;
	const breadcrumb = select('.breadcrumb');
	if (!breadcrumb) {
		branchSelectorWrapper.after(button);
		return;
	}

	branchSelectorWrapper.append(button);
	if (branchSelector.classList.contains('rgh-wrapper-added')) {
		return;
	}

	breadcrumb.classList.add('flex-shrink-0');
	breadcrumb.classList.remove('mt-3');
	branchSelector.classList.add('rgh-wrapper-added');
	branchSelectorWrapper.classList.add('d-flex', 'flex-shrink-0');
	wrapAll([branchSelectorWrapper, breadcrumb], <div className="d-flex flex-wrap flex-1 mr-2" style={{rowGap: '16px'}}/>);
}