Skip to content

Commit 1f8afac

Browse files
feat: integrate emoji detection in commit command
• Update displayPreview to strip emojis for non-emoji terminals • Update commit success messages to use emoji-stripped display • Pass emojiModeActive flag through commit workflow • Maintain clean output on non-emoji terminals while preserving Git storage
1 parent 18d5a56 commit 1f8afac

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/cli/commands/commit/index.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import { loadConfig, ConfigError } from "../../../lib/config/index.js";
1515
import type { LabcommitrConfig } from "../../../lib/config/types.js";
1616
import { Logger } from "../../../lib/logger.js";
17+
import { formatForDisplay } from "../../../lib/util/emoji.js";
1718
import { isGitRepository } from "./git.js";
1819
import {
1920
stageAllTrackedFiles,
@@ -193,6 +194,7 @@ export async function commitAction(options: {
193194
}
194195

195196
const config = configResult.config;
197+
const emojiModeActive = configResult.emojiModeActive;
196198

197199
// Step 2: Verify git repository
198200
if (!isGitRepository()) {
@@ -353,7 +355,8 @@ export async function commitAction(options: {
353355
);
354356

355357
console.log(`${success("✓")} Commit created successfully!`);
356-
console.log(` ${commitHash} ${formattedMessage}`);
358+
const displayMessage = formatForDisplay(formattedMessage, emojiModeActive);
359+
console.log(` ${commitHash} ${displayMessage}`);
357360
} catch (error: unknown) {
358361
// Cleanup on failure
359362
await cleanup({
@@ -441,7 +444,7 @@ export async function commitAction(options: {
441444
);
442445

443446
// Show preview and get user action
444-
action = await displayPreview(formattedMessage, body, config);
447+
action = await displayPreview(formattedMessage, body, config, emojiModeActive);
445448

446449
// Handle edit actions
447450
if (action === "edit-type") {
@@ -508,7 +511,8 @@ export async function commitAction(options: {
508511
);
509512

510513
console.log(`${success("✓")} Commit created successfully!`);
511-
console.log(` ${commitHash} ${formattedMessage}`);
514+
const displayMessage = formatForDisplay(formattedMessage, emojiModeActive);
515+
console.log(` ${commitHash} ${displayMessage}`);
512516
} catch (error: unknown) {
513517
// Cleanup on failure
514518
await cleanup({

src/cli/commands/commit/prompts.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,6 +1076,7 @@ export async function displayPreview(
10761076
formattedMessage: string,
10771077
body: string | undefined,
10781078
config?: LabcommitrConfig,
1079+
emojiModeActive: boolean = true,
10791080
): Promise<
10801081
| "commit"
10811082
| "edit-type"
@@ -1084,6 +1085,13 @@ export async function displayPreview(
10841085
| "edit-body"
10851086
| "cancel"
10861087
> {
1088+
// Import emoji utilities
1089+
const { formatForDisplay } = await import("../../../lib/util/emoji.js");
1090+
1091+
// Strip emojis for display if terminal doesn't support them
1092+
const displayMessage = formatForDisplay(formattedMessage, emojiModeActive);
1093+
const displayBody = body ? formatForDisplay(body, emojiModeActive) : undefined;
1094+
10871095
// Start connector line using @clack/prompts
10881096
log.info(
10891097
`${label("preview", "green")} ${textColors.pureWhite("Commit message preview:")}`,
@@ -1092,11 +1100,11 @@ export async function displayPreview(
10921100
// Render content with connector lines
10931101
// Empty line after header
10941102
console.log(renderWithConnector(""));
1095-
console.log(renderWithConnector(textColors.brightCyan(formattedMessage)));
1103+
console.log(renderWithConnector(textColors.brightCyan(displayMessage)));
10961104

1097-
if (body) {
1105+
if (displayBody) {
10981106
console.log(renderWithConnector(""));
1099-
const bodyLines = body.split("\n");
1107+
const bodyLines = displayBody.split("\n");
11001108
for (const line of bodyLines) {
11011109
console.log(renderWithConnector(textColors.white(line)));
11021110
}

0 commit comments

Comments
 (0)