import React from 'dom-chef'; import select from 'select-dom'; import delegate from 'delegate-it'; import * as pageDetect from 'github-url-detection'; import features from '.'; import * as api from '../github-helpers/api'; import LoadingIcon from '../github-helpers/icon-loading'; async function convertToDraft({delegateTarget: draftButton}: delegate.Event): Promise { try { draftButton.append(); const tagName = location.pathname.split('/').pop()!; const release = await api.v3(`releases/tags/${tagName}`); await api.v3(release.url, { method: 'PATCH', body: { draft: true } }); select('.BtnGroup a[href*="releases/edit"]')!.click(); // Visit "Edit release" page } catch (error: unknown) { draftButton.textContent = 'Error. Check console or retry'; features.error(__filebasename, error); } } async function init(): Promise { await api.expectToken(); const editButton = select('.BtnGroup a[href*="releases/edit"]'); if (!editButton || select.exists('.label-draft')) { return false; } editButton.after(); delegate(document, '.rgh-convert-draft', 'click', convertToDraft); } void features.add(__filebasename, { include: [ pageDetect.isSingleTag ], init });