Amended request creates new submission entry with 'Amended Request' label

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Krao Hasanee
2026-03-27 00:09:23 -04:00
parent 1e1e29ad99
commit 585cb154ba
3 changed files with 23 additions and 11 deletions
+1
View File
@@ -8,6 +8,7 @@ const labels = {
completed: 'Completed',
initial: 'Initial',
revision: 'Revision',
amendment: 'Amended',
team: 'Team',
client: 'Client',
};
+21 -10
View File
@@ -93,27 +93,33 @@ export default function RequestDetail() {
setSaving(true);
if (action === 'edit') {
const latestSub = submissions[submissions.length - 1];
const updatedDescription = latestSub
? `${latestSub.description}\n\n─── Edited ${new Date().toLocaleDateString()} ───\n${revisionForm.description}`
: revisionForm.description;
const newVersion = (task.current_version || 0) + 1;
await supabase.from('tasks').update({ current_version: newVersion }).eq('id', id);
await supabase.from('submissions').update({
description: updatedDescription,
deadline: revisionForm.deadline || latestSub?.deadline || null,
}).eq('id', latestSub.id);
const { data: newSub } = await supabase.from('submissions').insert({
task_id: id,
version_number: newVersion + 1,
type: 'amendment',
service_type: task.title,
deadline: revisionForm.deadline || null,
description: revisionForm.description,
submitted_by: currentUser.id,
submitted_by_name: currentUser.name,
}).select().single();
if (revisionFiles.length > 0) {
if (newSub && revisionFiles.length > 0) {
for (const file of revisionFiles) {
const path = `${id}/${Date.now()}_${file.name}`;
const { data: uploaded } = await supabase.storage.from('submissions').upload(path, file);
if (uploaded) {
await supabase.from('submission_files').insert({
submission_id: latestSub.id, name: file.name, storage_path: path, size: file.size,
submission_id: newSub.id, name: file.name, storage_path: path, size: file.size,
});
}
}
}
setTask(t => ({ ...t, current_version: newVersion }));
} else {
const newVersion = (task.current_version || 0) + 1;
await supabase.from('tasks').update({ status: 'not_started', current_version: newVersion }).eq('id', id);
@@ -307,6 +313,11 @@ export default function RequestDetail() {
const delivery = sub.delivery;
return (
<div key={sub.id} className="version-item">
{sub.type === 'amendment' && (
<div style={{ fontSize: 11, fontWeight: 700, textTransform: 'uppercase', color: 'var(--accent)', marginBottom: 8, letterSpacing: 0.5 }}>
Amended Request
</div>
)}
<div className="version-header">
<div style={{ display: 'flex', alignItems: 'center', gap: 10 }}>
<div className="version-number">{vLabel(sub.version_number - 1)}</div>
+1 -1
View File
@@ -55,7 +55,7 @@ create table public.submissions (
id uuid default gen_random_uuid() primary key,
task_id uuid references public.tasks(id) on delete cascade not null,
version_number integer not null,
type text not null check (type in ('initial', 'revision')) default 'initial',
type text not null check (type in ('initial', 'revision', 'amendment')) default 'initial',
service_type text default '',
deadline date,
description text default '',