Replace 'asset' with 'proof' in user-facing UI text
Update all user-visible strings across the frontend to use "proof/proofs" terminology instead of "asset/assets". This includes button labels, headers, tooltips, confirmation messages, and mock feedback text. Internal code (variable names, types, HTML IDs) remains unchanged. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
35918dd310
commit
ebf92a91c7
7 changed files with 34 additions and 34 deletions
|
|
@ -28,7 +28,7 @@ export const AssetPreview: React.FC<AssetPreviewProps> = ({ file, previewUrl, fi
|
|||
};
|
||||
|
||||
const fileType = getMimeType();
|
||||
const displayName = fileName || file?.name || 'Asset Preview';
|
||||
const displayName = fileName || file?.name || 'Proof Preview';
|
||||
|
||||
// Check if we have rasterized PDF pages to display
|
||||
const hasPdfPages = pdfPages && pdfPages.length > 0;
|
||||
|
|
|
|||
|
|
@ -628,7 +628,7 @@ const UploadProofModal: React.FC<{
|
|||
<div className="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4 border-b border-grey-300 flex justify-between items-start">
|
||||
<div>
|
||||
<h3 className="text-2xl font-bold text-primary-blue" id="modal-title">Upload New Proof</h3>
|
||||
<p className="text-sm text-grey-900 mt-1">Drag and drop your asset below to start AI analysis.</p>
|
||||
<p className="text-sm text-grey-900 mt-1">Drag and drop your proof below to start AI analysis.</p>
|
||||
</div>
|
||||
<button
|
||||
onClick={onClose}
|
||||
|
|
@ -1505,7 +1505,7 @@ const ProofDetailView: React.FC<{
|
|||
title={`Download Version ${selectedVersion.version}`}
|
||||
>
|
||||
<DownloadIcon className="h-4 w-4" />
|
||||
Download Asset
|
||||
Download Proof
|
||||
</button>
|
||||
<button
|
||||
onClick={handleDownloadReport}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ const specialistAgents: CheckDetail[] = [
|
|||
name: 'Channel Tech Specs Agent',
|
||||
icon: <ChannelIcon />,
|
||||
role: 'Technical Specs',
|
||||
description: 'Checks assets against platform-specific technical specifications.'
|
||||
description: 'Checks proofs against platform-specific technical specifications.'
|
||||
}
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ export const Hero: React.FC<HeroProps> = ({ onGetStarted }) => {
|
|||
</h1>
|
||||
|
||||
<p className="text-lg md:text-xl text-slate-300 mb-10 leading-relaxed max-w-2xl">
|
||||
Streamline your creative approval process. Mod Comms analyses your assets against guidelines and best practice in seconds, not days.
|
||||
Streamline your creative approval process. Mod Comms analyses your proofs against guidelines and best practice in seconds, not days.
|
||||
</p>
|
||||
|
||||
<div className="flex flex-col sm:flex-row gap-4">
|
||||
|
|
|
|||
|
|
@ -49,15 +49,15 @@ const IG_HERO_POST_1_IMAGE_V2 = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4M
|
|||
|
||||
const IG_HERO_POST_1_FEEDBACK_V1: AgentReview = {
|
||||
overallStatus: "Analysis Error",
|
||||
leadAgentSummary: "The asset could not be reliably processed by some agents due to low confidence in the analysis. This may happen if the asset is too abstract or irrelevant to typical marketing content. This version has been logged for manual human review. Please try uploading a revised version of the asset.",
|
||||
leadAgentSummary: "The proof could not be reliably processed by some agents due to low confidence in the analysis. This may happen if the proof is too abstract or irrelevant to typical marketing content. This version has been logged for manual human review. Please try uploading a revised version of the proof.",
|
||||
legalAgentReview: {
|
||||
ragStatus: "Error",
|
||||
feedback: "The agent could not analyze this asset with high confidence. This may be because the content is irrelevant, nonsensical, or too far outside of expected marketing materials.",
|
||||
feedback: "The agent could not analyze this proof with high confidence. This may be because the content is irrelevant, nonsensical, or too far outside of expected marketing materials.",
|
||||
issues: []
|
||||
},
|
||||
brandAgentReview: {
|
||||
ragStatus: "Error",
|
||||
feedback: "The agent could not analyze this asset with high confidence. This may be because the content is irrelevant, nonsensical, or too far outside of expected marketing materials.",
|
||||
feedback: "The agent could not analyze this proof with high confidence. This may be because the content is irrelevant, nonsensical, or too far outside of expected marketing materials.",
|
||||
issues: []
|
||||
},
|
||||
channelBestPracticesAgentReview: {
|
||||
|
|
@ -74,7 +74,7 @@ const IG_HERO_POST_1_FEEDBACK_V1: AgentReview = {
|
|||
|
||||
const IG_HERO_POST_1_FEEDBACK_V2: AgentReview = {
|
||||
overallStatus: "Passed",
|
||||
leadAgentSummary: "The asset has Passed review. All critical legal and brand issues from the previous version have been successfully addressed. The partnership claim is clear, and the design now fully aligns with brand guidelines. One minor suggestion is to consider a separate vertical version for Story placements, but the asset is approved for deployment.",
|
||||
leadAgentSummary: "The proof has Passed review. All critical legal and brand issues from the previous version have been successfully addressed. The partnership claim is clear, and the design now fully aligns with brand guidelines. One minor suggestion is to consider a separate vertical version for Story placements, but the proof is approved for deployment.",
|
||||
legalAgentReview: {
|
||||
ragStatus: "Green",
|
||||
feedback: "All legal concerns have been addressed. The partnership claim is now clearly stated as 'Proud principal partner' and all necessary documentation for the use of the Lord's branding has been verified.",
|
||||
|
|
@ -82,7 +82,7 @@ const IG_HERO_POST_1_FEEDBACK_V2: AgentReview = {
|
|||
},
|
||||
brandAgentReview: {
|
||||
ragStatus: "Green",
|
||||
feedback: "The asset now fully aligns with brand guidelines. The 'Principal partner' lockup uses the correct brand font, and the non-standard blue border has been removed, resulting in a cleaner, on-brand look.",
|
||||
feedback: "The proof now fully aligns with brand guidelines. The 'Principal partner' lockup uses the correct brand font, and the non-standard blue border has been removed, resulting in a cleaner, on-brand look.",
|
||||
issues: []
|
||||
},
|
||||
channelBestPracticesAgentReview: {
|
||||
|
|
@ -140,9 +140,9 @@ export const initialProjectAssets: { [key: string]: any[] } = {
|
|||
assetPreviewUrl: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4MCIgaGVpZ2h0PSIxMDgwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IiNmNGY2ZjgiLz48dGV4dCB4PSI1MCUiIHk9IjUwJSIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iODAiIGZpbGw9IiMwMDFmNWEiLz48dGV4dCB4PSI1MCUiIHk9IjUwJSIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iODAiIGZpbGw9IiMwMDFmNWEiIHRleH0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIj5RMyBSZXN1bHRzIEluZm9ncmFwaGljPC90ZXh0Pjwvc3ZnPg==',
|
||||
feedback: {
|
||||
overallStatus: "Passed",
|
||||
leadAgentSummary: "The asset has Passed review with no issues found across all categories. It is well-designed, compliant, and ready for deployment.",
|
||||
leadAgentSummary: "The proof has Passed review with no issues found across all categories. It is well-designed, compliant, and ready for deployment.",
|
||||
legalAgentReview: { ragStatus: "Green", feedback: "All claims are substantiated and disclaimers are correctly placed.", issues: [] },
|
||||
brandAgentReview: { ragStatus: "Green", feedback: "The asset adheres perfectly to all brand guidelines.", issues: [] },
|
||||
brandAgentReview: { ragStatus: "Green", feedback: "The proof adheres perfectly to all brand guidelines.", issues: [] },
|
||||
channelBestPracticesAgentReview: { ragStatus: "Green", feedback: "The content strategy is effective and well-optimized for engagement.", issues: [] },
|
||||
channelTechSpecsAgentReview: { ragStatus: "Green", feedback: "The infographic format is highly suitable for the selected channel.", issues: [] },
|
||||
},
|
||||
|
|
@ -230,7 +230,7 @@ const ProjectList: React.FC<{
|
|||
<div className="flex flex-col md:flex-row justify-between items-start md:items-center gap-4">
|
||||
<div>
|
||||
<h1 className="text-3xl lg:text-4xl font-bold text-primary-blue">Projects</h1>
|
||||
<p className="text-base lg:text-lg text-primary-blue mt-1">Manage your campaigns and asset collections.</p>
|
||||
<p className="text-base lg:text-lg text-primary-blue mt-1">Manage your campaigns and proof collections.</p>
|
||||
</div>
|
||||
<div className="flex items-center gap-4">
|
||||
<div className="flex items-center gap-2">
|
||||
|
|
@ -255,7 +255,7 @@ const ProjectList: React.FC<{
|
|||
<thead className="bg-lime">
|
||||
<tr>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Project Name</th>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Assets</th>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Proofs</th>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Status</th>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Created By</th>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Owning Agency</th>
|
||||
|
|
@ -345,12 +345,12 @@ const ProjectAssetUpload: React.FC<{
|
|||
|
||||
return (
|
||||
<section className="bg-white rounded-[10px] shadow-md p-6 border border-grey-300 mb-8">
|
||||
<h2 className="text-xl font-bold text-primary-blue mb-4">Upload New Asset</h2>
|
||||
<h2 className="text-xl font-bold text-primary-blue mb-4">Upload New Proof</h2>
|
||||
<form onSubmit={handleSubmit} className="space-y-4">
|
||||
<div>
|
||||
<label htmlFor="asset-name" className="flex items-center text-sm font-medium text-black-title mb-1">
|
||||
<DocumentIcon className="h-5 w-5 mr-2 text-active-blue shrink-0" />
|
||||
Asset Name
|
||||
Proof Name
|
||||
</label>
|
||||
<input
|
||||
id="asset-name"
|
||||
|
|
@ -364,7 +364,7 @@ const ProjectAssetUpload: React.FC<{
|
|||
/>
|
||||
{isNewVersion && (
|
||||
<p className="text-xs text-active-blue mt-2 p-2 bg-info-light rounded-[10px]">
|
||||
An asset with this name already exists. This will be uploaded as a new version.
|
||||
A proof with this name already exists. This will be uploaded as a new version.
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
|
|
@ -418,7 +418,7 @@ const ProjectAssetUpload: React.FC<{
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<label className="block text-sm font-medium text-black-title mb-1">Asset File</label>
|
||||
<label className="block text-sm font-medium text-black-title mb-1">Proof File</label>
|
||||
<div className="mt-1 flex justify-center px-6 pt-5 pb-6 border-2 border-grey-300 border-dashed rounded-[10px]">
|
||||
<div className="space-y-1 text-center">
|
||||
<UploadIcon className="mx-auto h-12 w-12 text-grey-700" />
|
||||
|
|
@ -447,7 +447,7 @@ const ProjectAssetUpload: React.FC<{
|
|||
</svg>
|
||||
Analyzing...
|
||||
</>
|
||||
) : 'Upload & Analyze Asset'}
|
||||
) : 'Upload & Analyze Proof'}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -502,7 +502,7 @@ const DeleteConfirmationModal: React.FC<{
|
|||
>
|
||||
<h3 className="text-xl font-bold text-primary-blue">Confirm Deletion</h3>
|
||||
<p className="text-black-title my-4">
|
||||
Are you sure you want to permanently delete the asset "{assetName}"? This action cannot be undone.
|
||||
Are you sure you want to permanently delete the proof "{assetName}"? This action cannot be undone.
|
||||
</p>
|
||||
<div className="mt-6 flex justify-end gap-3">
|
||||
<button
|
||||
|
|
@ -517,7 +517,7 @@ const DeleteConfirmationModal: React.FC<{
|
|||
onClick={onConfirm}
|
||||
className="bg-error text-white font-semibold py-2 px-4 rounded-full hover:bg-error/80 transition-colors"
|
||||
>
|
||||
Delete Asset
|
||||
Delete Proof
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -606,7 +606,7 @@ const ProjectDetail: React.FC<{
|
|||
</button>
|
||||
<div>
|
||||
<h1 className="text-3xl lg:text-4xl font-bold text-primary-blue">{projectName}</h1>
|
||||
<p className="text-base lg:text-lg text-primary-blue mt-1">Asset overview and compliance status.</p>
|
||||
<p className="text-base lg:text-lg text-primary-blue mt-1">Proof overview and compliance status.</p>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
|
@ -628,18 +628,18 @@ const ProjectDetail: React.FC<{
|
|||
{!isUploadFormVisible && (
|
||||
<div className="mb-6 flex justify-end gap-3">
|
||||
<button
|
||||
onClick={() => console.log('Download all assets clicked')}
|
||||
onClick={() => console.log('Download all proofs clicked')}
|
||||
className="flex items-center gap-2 bg-white text-active-blue font-semibold py-2 px-4 rounded-full border-2 border-active-blue hover:bg-active-blue/10 transition-colors duration-300"
|
||||
>
|
||||
<DownloadIcon className="h-5 w-5" />
|
||||
Download All Assets
|
||||
Download All Proofs
|
||||
</button>
|
||||
<button
|
||||
onClick={() => setIsUploadFormVisible(true)}
|
||||
className="flex items-center gap-2 bg-active-blue text-white font-semibold py-2 px-4 rounded-full hover:bg-primary-blue transition-colors duration-300"
|
||||
>
|
||||
<PlusIcon className="h-5 w-5" />
|
||||
Upload New Asset
|
||||
Upload New Proof
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
|
|
@ -648,7 +648,7 @@ const ProjectDetail: React.FC<{
|
|||
<table className="min-w-full divide-y divide-grey-300">
|
||||
<thead className="bg-lime">
|
||||
<tr>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Asset Name</th>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Proof Name</th>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Workfront #</th>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Channel</th>
|
||||
<th scope="col" className="px-6 py-3 text-left text-xs font-bold text-black-title uppercase tracking-wider">Sub-Channel</th>
|
||||
|
|
@ -732,13 +732,13 @@ const ProjectDetail: React.FC<{
|
|||
<button
|
||||
onClick={(e) => handleNewVersionClick(e, asset)}
|
||||
className="p-2 text-grey-700 rounded-full hover:bg-info-light hover:text-active-blue transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
|
||||
title={`Upload new version for ${asset.assetName}`}
|
||||
title={`Upload new version of ${asset.assetName}`}
|
||||
disabled={isUploading}
|
||||
>
|
||||
<UploadIcon className="h-5 w-5" />
|
||||
</button>
|
||||
<button
|
||||
onClick={(e) => { e.stopPropagation(); console.log('Download asset clicked'); }}
|
||||
onClick={(e) => { e.stopPropagation(); console.log('Download proof clicked'); }}
|
||||
className="p-2 text-grey-700 rounded-full hover:bg-success-light hover:text-success transition-colors"
|
||||
title={`Download ${asset.assetName}`}
|
||||
>
|
||||
|
|
@ -832,7 +832,7 @@ const AssetDetailView: React.FC<{
|
|||
if (!selectedVersion) {
|
||||
return (
|
||||
<div className="p-8">
|
||||
<p>Error: This asset has no versions to display.</p>
|
||||
<p>Error: This proof has no versions to display.</p>
|
||||
<button onClick={onBack}>Go Back</button>
|
||||
</div>
|
||||
);
|
||||
|
|
@ -862,7 +862,7 @@ const AssetDetailView: React.FC<{
|
|||
<div className="sticky top-8 flex flex-col gap-y-6">
|
||||
<div>
|
||||
<h2 className="text-2xl font-bold text-primary-blue mb-4">
|
||||
Asset Preview
|
||||
Proof Preview
|
||||
</h2>
|
||||
<AssetPreview
|
||||
previewUrl={selectedVersion.assetPreviewUrl}
|
||||
|
|
@ -889,7 +889,7 @@ const AssetDetailView: React.FC<{
|
|||
onClick={handleUploadClick}
|
||||
disabled={isUploadingNewVersion}
|
||||
className="flex items-center gap-2 text-sm bg-white text-active-blue font-semibold py-1.5 px-3 rounded-full border-2 border-active-blue hover:bg-active-blue/10 transition-colors duration-200 disabled:bg-grey-300 disabled:text-grey-700 disabled:cursor-wait"
|
||||
title="Upload a new version of this asset"
|
||||
title="Upload a new version of this proof"
|
||||
>
|
||||
{isUploadingNewVersion ? (
|
||||
<>
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ export const AssetUpload: React.FC<AssetUploadProps> = ({ onFileUpload, isLoadin
|
|||
<button
|
||||
onClick={handleClick}
|
||||
disabled={isDisabled}
|
||||
title={isUploadDisabled ? "Please complete all selections above" : "Upload an asset for review"}
|
||||
title={isUploadDisabled ? "Please complete all selections above" : "Upload a proof for review"}
|
||||
className="w-full bg-cyan-brand text-primary-blue font-bold py-3 px-6 rounded-full hover:bg-white transition-all duration-300 disabled:bg-gray-500 disabled:opacity-60 disabled:cursor-not-allowed flex items-center justify-center"
|
||||
>
|
||||
{isLoading ? (
|
||||
|
|
@ -46,7 +46,7 @@ export const AssetUpload: React.FC<AssetUploadProps> = ({ onFileUpload, isLoadin
|
|||
</svg>
|
||||
Processing...
|
||||
</>
|
||||
) : 'Upload Asset'}
|
||||
) : 'Upload Proof'}
|
||||
</button>
|
||||
<p className="text-xs text-gray-400 mt-4">Supports PNG, JPG, GIF, WEBP, MP4, PDF.</p>
|
||||
</div>
|
||||
|
|
@ -495,7 +495,7 @@ export const Settings: React.FC<SettingsProps> = ({
|
|||
<ClipboardIcon className="h-6 w-6" />
|
||||
</div>
|
||||
<h3 className="font-bold text-primary-blue mb-1">WIP Reviewer</h3>
|
||||
<p className="text-sm text-grey-900">Early-stage feedback on assets before they are finalized.</p>
|
||||
<p className="text-sm text-grey-900">Early-stage feedback on proofs before they are finalized.</p>
|
||||
</button>
|
||||
|
||||
<button
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue