@nkzw/codiff-core 1.11.0 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,6 +14,7 @@ export type ReviewSurfaceProps = {
14
14
  onClosePullRequest?: () => Promise<void> | void;
15
15
  onGenerateWalkthrough: () => Promise<void> | void;
16
16
  onHome: () => void;
17
+ onMarkPullRequestReady?: () => Promise<void> | void;
17
18
  onMergePullRequest?: (options: PullRequestMergeOptions & {
18
19
  autoMerge: boolean;
19
20
  }) => Promise<void> | void;
@@ -53,11 +53,12 @@ export declare function CopyCommentsButton({ comments, files, reviewCommentsPref
53
53
  showWhitespace: boolean;
54
54
  }): import("react").JSX.Element;
55
55
  export declare const isPullRequestReviewActionDisabled: (reviewStatus: PullRequestReviewStatus | undefined, event: PullRequestReviewEvent) => boolean;
56
- export declare function PullRequestReviewButtons({ children, disabled, hasPendingComments, onClosePullRequest, onSubmitReview, reviewStatus, showCommentReview, }: {
56
+ export declare function PullRequestReviewButtons({ children, disabled, hasPendingComments, onClosePullRequest, onMarkPullRequestReady, onSubmitReview, reviewStatus, showCommentReview, }: {
57
57
  children?: ReactNode;
58
58
  disabled: boolean;
59
59
  hasPendingComments: boolean;
60
60
  onClosePullRequest?: () => void;
61
+ onMarkPullRequestReady?: () => void;
61
62
  onSubmitReview: (event: PullRequestReviewEvent, body?: string) => Promise<void> | void;
62
63
  reviewStatus?: PullRequestReviewStatus;
63
64
  showCommentReview?: boolean;
package/dist/react.mjs CHANGED
@@ -2633,14 +2633,16 @@ function PullRequestReviewAction({ disabled, event, hasPendingComments = false,
2633
2633
  }) : null]
2634
2634
  });
2635
2635
  }
2636
- function PullRequestReviewButtons({ children, disabled, hasPendingComments, onClosePullRequest, onSubmitReview, reviewStatus, showCommentReview = false }) {
2636
+ function PullRequestReviewButtons({ children, disabled, hasPendingComments, onClosePullRequest, onMarkPullRequestReady, onSubmitReview, reviewStatus, showCommentReview = false }) {
2637
2637
  const approveBlocked = isPullRequestReviewActionDisabled(reviewStatus, "APPROVE");
2638
2638
  const commentBlocked = isPullRequestReviewActionDisabled(reviewStatus, "COMMENT");
2639
2639
  const requestChangesBlocked = isPullRequestReviewActionDisabled(reviewStatus, "REQUEST_CHANGES");
2640
2640
  const closeStatus = reviewStatus?.close;
2641
2641
  const closeVisible = onClosePullRequest && closeStatus && closeStatus.disabled !== true;
2642
+ const markReadyStatus = reviewStatus?.markReady;
2643
+ const markReadyVisible = onMarkPullRequestReady && markReadyStatus && markReadyStatus.disabled !== true;
2642
2644
  const commentVisible = showCommentReview && !commentBlocked;
2643
- const hasReviewActions = commentVisible || !approveBlocked || !requestChangesBlocked || closeVisible;
2645
+ const hasReviewActions = commentVisible || !approveBlocked || !requestChangesBlocked || markReadyVisible || closeVisible;
2644
2646
  if (!hasReviewActions && !children) return null;
2645
2647
  return /* @__PURE__ */ jsxs("div", {
2646
2648
  "aria-label": hasReviewActions ? "Pull request review actions" : "Pull request status",
@@ -2687,6 +2689,21 @@ function PullRequestReviewButtons({ children, disabled, hasPendingComments, onCl
2687
2689
  onSubmitReview,
2688
2690
  title: getPullRequestReviewActionTitle(reviewStatus, "REQUEST_CHANGES", "Request changes")
2689
2691
  }) : null,
2692
+ markReadyVisible ? /* @__PURE__ */ jsxs(Button, {
2693
+ action: onMarkPullRequestReady,
2694
+ "aria-label": "Mark merge request as ready",
2695
+ className: "review-submit-button ready",
2696
+ disabled,
2697
+ pendingPlaceholder: "Marking ready…",
2698
+ title: markReadyStatus.reason ?? "Mark merge request as ready",
2699
+ type: "button",
2700
+ children: [/* @__PURE__ */ jsx(CheckCircleIcon, {
2701
+ "aria-hidden": true,
2702
+ className: "review-submit-icon ready",
2703
+ size: 15,
2704
+ weight: "bold"
2705
+ }), /* @__PURE__ */ jsx("span", { children: "Mark ready" })]
2706
+ }) : null,
2690
2707
  closeVisible ? /* @__PURE__ */ jsxs(Button, {
2691
2708
  action: onClosePullRequest,
2692
2709
  "aria-label": "Close merge request",
@@ -9654,6 +9671,7 @@ function ReviewSurface({ commenting, externalUrl, gitIdentity = null, initialMod
9654
9671
  const [generalCommentSubmitting, setGeneralCommentSubmitting] = useState(false);
9655
9672
  const [pullRequestReviewSubmitting, setPullRequestReviewSubmitting] = useState(null);
9656
9673
  const [pullRequestCloseSubmitting, setPullRequestCloseSubmitting] = useState(false);
9674
+ const [pullRequestReadySubmitting, setPullRequestReadySubmitting] = useState(false);
9657
9675
  const [pullRequestMergeSubmitting, setPullRequestMergeSubmitting] = useState(false);
9658
9676
  const [walkthroughRequestPending, setWalkthroughRequestPending] = useState(false);
9659
9677
  const walkthroughRequestPendingRef = useRef(false);
@@ -9797,6 +9815,18 @@ function ReviewSurface({ commenting, externalUrl, gitIdentity = null, initialMod
9797
9815
  pullRequestCloseSubmitting,
9798
9816
  snapshot.repository.source
9799
9817
  ]);
9818
+ const markPullRequestReady = useCallback(() => {
9819
+ const source = snapshot.repository.source;
9820
+ if (!interactive?.onMarkPullRequestReady || pullRequestReadySubmitting || source.type !== "pull-request" || source.reviewStatus?.markReady?.disabled === true || !source.reviewStatus?.markReady) return;
9821
+ setPullRequestReadySubmitting(true);
9822
+ return Promise.resolve(interactive.onMarkPullRequestReady()).catch((error) => {
9823
+ window.alert(error instanceof Error ? error.message : String(error));
9824
+ }).finally(() => setPullRequestReadySubmitting(false));
9825
+ }, [
9826
+ interactive,
9827
+ pullRequestReadySubmitting,
9828
+ snapshot.repository.source
9829
+ ]);
9800
9830
  const mergePullRequest = useCallback((options) => {
9801
9831
  if (!interactive?.onMergePullRequest || pullRequestMergeSubmitting) return;
9802
9832
  setPullRequestMergeSubmitting(true);
@@ -10013,9 +10043,10 @@ function ReviewSurface({ commenting, externalUrl, gitIdentity = null, initialMod
10013
10043
  const isTerminalMergeState = sourceMergeState ? isTerminalPullRequestMergeState(sourceMergeState) : false;
10014
10044
  const sourceMergeStatusBadge = sourceMergeState && isTerminalMergeState ? /* @__PURE__ */ jsx(PullRequestMergeStatusBadge, { mergeState: sourceMergeState }) : null;
10015
10045
  const sourceDescriptionActions = interactive && source.type === "pull-request" ? /* @__PURE__ */ jsx(PullRequestReviewButtons, {
10016
- disabled: pullRequestReviewSubmitting != null || pullRequestCloseSubmitting,
10046
+ disabled: pullRequestReviewSubmitting != null || pullRequestCloseSubmitting || pullRequestReadySubmitting,
10017
10047
  hasPendingComments: getPendingPullRequestReviewComments(localReviewComments, activeReviewCommentDraftState).length > 0,
10018
10048
  onClosePullRequest: closePullRequest,
10049
+ onMarkPullRequestReady: markPullRequestReady,
10019
10050
  onSubmitReview: submitReview,
10020
10051
  reviewStatus: source.reviewStatus,
10021
10052
  showCommentReview: source.provider === "github" || source.host === "github.com",
package/dist/style.css CHANGED
@@ -5453,7 +5453,6 @@ a.review-top-bar-repository:focus-visible, a.review-top-bar-source:focus-visible
5453
5453
  .review-mode-control button[aria-selected="true"] {
5454
5454
  background: var(--hover-wash);
5455
5455
  color: var(--sidebar-text);
5456
- box-shadow: 0 1px 2px #00000014;
5457
5456
  }
5458
5457
 
5459
5458
  .review-mode-label {
@@ -8194,7 +8193,7 @@ diffs-container .review-comment-thread {
8194
8193
  position: relative;
8195
8194
  }
8196
8195
 
8197
- .review-submit-button:not(.close) {
8196
+ .review-submit-button:is(.approve, .comment, .request-changes) {
8198
8197
  cursor: default;
8199
8198
  gap: 0;
8200
8199
  padding: 0;
package/dist/types.d.ts CHANGED
@@ -52,6 +52,7 @@ export type PullRequestReviewStatus = {
52
52
  approve?: PullRequestReviewActionStatus;
53
53
  close?: PullRequestReviewActionStatus;
54
54
  comment?: PullRequestReviewActionStatus;
55
+ markReady?: PullRequestReviewActionStatus;
55
56
  requestChanges?: PullRequestReviewActionStatus;
56
57
  };
57
58
  export type PullRequestMergeCheckStatus = 'failed' | 'neutral' | 'pending' | 'success';
@@ -133,6 +134,7 @@ export type ReviewSource = {
133
134
  canEditReviewers?: boolean;
134
135
  canEditTitle?: boolean;
135
136
  description?: string;
137
+ draft?: boolean;
136
138
  headSha?: string;
137
139
  host?: string;
138
140
  mergeState?: PullRequestMergeState;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nkzw/codiff-core",
3
- "version": "1.11.0",
3
+ "version": "1.11.1",
4
4
  "description": "A fast diff viewer.",
5
5
  "license": "MIT",
6
6
  "author": {