283511bf3a
- Fix nav links not working from profile page (useEffect infinite re-render via unstable profile object ref)
- Fix nav hover/active: gold icon highlight, no background change; active links non-clickable
- Fix hover layout shift: add border: 1px solid transparent to all interactive elements
- Header icon buttons (search, theme toggle) now highlight gold on hover
- Profile page: replace calendar with activity feed (60/40 grid), add stat cards (tasks completed, active projects, revision requests, submissions)
- Profile card: title field, icon rows for location/email/linkedin, member since + role bottom-right, edit button top-right
- Profile portrait: remove wrapper column, fix left-gap alignment
- Add profiles.title migration
- Dashboard recent activity: name → /profile/{id}, task → /requests/{id} (clickable links)
- Icon-only sidebar with gold active/hover state, pointer-events: none on active links
- layout.md updated with profile page geometry rules
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
22 lines
690 B
SQL
22 lines
690 B
SQL
create table if not exists activity_log (
|
|
id uuid default gen_random_uuid() primary key,
|
|
created_at timestamptz default now(),
|
|
actor_id uuid references profiles(id) on delete set null,
|
|
actor_name text,
|
|
action text not null,
|
|
task_id uuid references tasks(id) on delete cascade,
|
|
task_title text,
|
|
project_id uuid references projects(id) on delete cascade,
|
|
project_name text
|
|
);
|
|
|
|
alter table activity_log enable row level security;
|
|
|
|
create policy "authenticated read activity_log"
|
|
on activity_log for select
|
|
using (auth.role() = 'authenticated');
|
|
|
|
create policy "authenticated insert activity_log"
|
|
on activity_log for insert
|
|
with check (auth.role() = 'authenticated');
|