From 35441615b584d55afce241fdcea4783ff5f4fdaf Mon Sep 17 00:00:00 2001 From: Erik Engervall Date: Fri, 16 Apr 2021 23:32:50 +0200 Subject: [PATCH] General improvements Signed-off-by: Erik Engervall --- .../src/api/PluginApiClient.ts | 5 +++- .../src/cards/patchRc/PatchBody.tsx | 13 +++++++++-- .../src/cards/projectForm/Owner.tsx | 7 ++++-- .../src/cards/projectForm/Repo.tsx | 4 ++-- .../cards/projectForm/VersioningStrategy.tsx | 8 +++---- .../src/helpers/getNewQueryParams.tsx | 23 ++++++++----------- 6 files changed, 35 insertions(+), 25 deletions(-) diff --git a/plugins/github-release-manager/src/api/PluginApiClient.ts b/plugins/github-release-manager/src/api/PluginApiClient.ts index 291749b217..13fc30dc43 100644 --- a/plugins/github-release-manager/src/api/PluginApiClient.ts +++ b/plugins/github-release-manager/src/api/PluginApiClient.ts @@ -706,7 +706,10 @@ export class PluginApiClient implements IPluginApiClient { const { data: cherryPickCommit } = await octokit.git.createCommit({ owner, repo, - message: `[patch ${bumpedTag}] ${selectedPatchCommit.commit.message}`, + message: `[patch ${bumpedTag}] ${selectedPatchCommit.commit.message} + +${selectedPatchCommit.sha} +${selectedPatchCommit.htmlUrl}`, tree: mergeTree, parents: [releaseBranchSha], }); diff --git a/plugins/github-release-manager/src/cards/patchRc/PatchBody.tsx b/plugins/github-release-manager/src/cards/patchRc/PatchBody.tsx index 4a0d6ab027..d12d150980 100644 --- a/plugins/github-release-manager/src/cards/patchRc/PatchBody.tsx +++ b/plugins/github-release-manager/src/cards/patchRc/PatchBody.tsx @@ -159,7 +159,9 @@ export const PatchBody = ({ (commit, index) => { // FIXME: Performance improvement opportunity: Convert to object lookup const commitExistsOnReleaseBranch = !!githubDataResponse.value?.recentCommitsOnReleaseBranch.find( - releaseBranchCommit => releaseBranchCommit.sha === commit.sha, + releaseBranchCommit => + releaseBranchCommit.sha === commit.sha || + releaseBranchCommit.commit.message.includes(commit.sha), // The selected patch commit's sha is included in the commit message ); const hasNoParent = !commit.firstParentSha; @@ -216,11 +218,18 @@ export const PatchBody = ({ - {commit.sha}{' '} + + {commit.sha} + {' '} { const queryParams = getNewQueryParams({ query, - key: 'owner', - value: event.target.value as string, + updates: [ + { key: 'repo', value: '' }, + { key: 'owner', value: event.target.value as string }, + ], }); + navigate(`?${queryParams}`, { replace: true }); }} className={formClasses.selectEmpty} diff --git a/plugins/github-release-manager/src/cards/projectForm/Repo.tsx b/plugins/github-release-manager/src/cards/projectForm/Repo.tsx index a47eb1a0d6..2e31649d83 100644 --- a/plugins/github-release-manager/src/cards/projectForm/Repo.tsx +++ b/plugins/github-release-manager/src/cards/projectForm/Repo.tsx @@ -61,9 +61,9 @@ export function Repo({ project }: { project: Project }) { onChange={event => { const queryParams = getNewQueryParams({ query, - key: 'repo', - value: event.target.value as string, + updates: [{ key: 'repo', value: event.target.value as string }], }); + navigate(`?${queryParams}`, { replace: true }); }} className={formClasses.selectEmpty} diff --git a/plugins/github-release-manager/src/cards/projectForm/VersioningStrategy.tsx b/plugins/github-release-manager/src/cards/projectForm/VersioningStrategy.tsx index c64ab66b96..8235f51916 100644 --- a/plugins/github-release-manager/src/cards/projectForm/VersioningStrategy.tsx +++ b/plugins/github-release-manager/src/cards/projectForm/VersioningStrategy.tsx @@ -41,8 +41,9 @@ export function VersioningStrategy({ project }: { project: Project }) { if (!parsedQuery.versioningStrategy) { const queryParams = getNewQueryParams({ query, - key: 'versioningStrategy', - value: project.versioningStrategy, + updates: [ + { key: 'versioningStrategy', value: project.versioningStrategy }, + ], }); navigate(`?${queryParams}`, { replace: true }); @@ -60,8 +61,7 @@ export function VersioningStrategy({ project }: { project: Project }) { onChange={event => { const queryParams = getNewQueryParams({ query, - key: 'versioningStrategy', - value: event.target.value, + updates: [{ key: 'versioningStrategy', value: event.target.value }], }); navigate(`?${queryParams}`, { replace: true }); diff --git a/plugins/github-release-manager/src/helpers/getNewQueryParams.tsx b/plugins/github-release-manager/src/helpers/getNewQueryParams.tsx index 271feafe04..ed5655bf54 100644 --- a/plugins/github-release-manager/src/helpers/getNewQueryParams.tsx +++ b/plugins/github-release-manager/src/helpers/getNewQueryParams.tsx @@ -26,24 +26,19 @@ export function getParsedQuery({ query }: { query: URLSearchParams }) { export function getNewQueryParams({ query, - key, - value, + updates, }: { query: URLSearchParams; - key: keyof Project; - value: string; + updates: { + key: keyof Project; + value: string; + }[]; }) { const queryParams = qs.parse(query.toString()); - queryParams[key] = value; + + for (const { key, value } of updates) { + queryParams[key] = value; + } return qs.stringify(queryParams); } - -// TODO: -// import { useQuery } from './useQuery'; - -// export function useGetNewQueryParams({}) { -// const query = useQuery(); - -// return 1; -// }