* refactor: apply biome formatting to Phase 1 packages Packages formatted: - packages/app-store-cli - packages/config - packages/dayjs - packages/debugging - packages/embeds/embed-react - packages/embeds/embed-snippet - packages/kysely - packages/platform/constants - packages/platform/utils - packages/testing - packages/tsconfig Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * fix: restore non-null assertions in embed-snippet to fix type error Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * fix: remove ESM import from CommonJS config file Biome incorrectly added 'import process from node:process' to a CommonJS file that uses require(). This breaks Jest which expects CommonJS syntax. The process global is already available in Node.js without explicit import. Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * refactor: exclude packages/embeds from Phase 1 formatting Per user request, reverting all biome formatting changes in packages/embeds to handle separately. Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * fix: restore const enum for BookingLocations Biome changed 'const enum' to 'enum' which is a semantic change. Reverting to keep the PR purely formatting-only. Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
30 lines
868 B
TypeScript
30 lines
868 B
TypeScript
import { Text } from "ink";
|
|
import { useEffect, useState } from "react";
|
|
|
|
export function Message({
|
|
message,
|
|
}: {
|
|
message: { text: string; type?: "info" | "error" | "success"; showInProgressIndicator?: boolean };
|
|
}) {
|
|
const color = message.type === "success" ? "green" : message.type === "error" ? "red" : "white";
|
|
const [progressText, setProgressText] = useState("...");
|
|
useEffect(() => {
|
|
if (message.showInProgressIndicator) {
|
|
const interval = setInterval(() => {
|
|
setProgressText((progressText) => {
|
|
return progressText.length > 3 ? "" : `${progressText}.`;
|
|
});
|
|
}, 1000);
|
|
return () => {
|
|
clearInterval(interval);
|
|
};
|
|
}
|
|
}, [message.showInProgressIndicator]);
|
|
return (
|
|
<Text color={color}>
|
|
{message.text}
|
|
{message.showInProgressIndicator && progressText}
|
|
</Text>
|
|
);
|
|
}
|