refactor(peer-support): delete provably dead code (Phase 1)

The Skills Exchange + Peer Support feature was replaced by Community
Connections on 2026-04-05, but several files and code paths were left
in place as backward-compat. None are reachable from the live UI:

- usePeerSupport.js composable: not imported anywhere
- PeerSupportBadge.vue: not imported anywhere
- peer-support.vue: stub redirect with no incoming links
- /api/peer-support.get.js: only consumed by usePeerSupport
- /api/members/me/peer-support.patch.js: same
- profile.patch.js offering/lookingFor write branches: profile form
  no longer sends these fields (only writes communityConnections.*)
- PEER_SUPPORT_ENABLED/DISABLED activity types and renderers: only
  written by the deleted peer-support.patch endpoint. The activityText
  formatter has a fallback for unknown types so existing records
  still display ("peer support enabled" with a generic icon).

Tests updated to drop peerSupportUpdateSchema coverage and the
offering/lookingFor passthrough assertion.

schemas.js cleanup deferred — concurrent communityConnections →
communityEcology rename is in flight in the working tree.
This commit is contained in:
Jennie Robinson Faber 2026-04-08 22:28:35 +01:00
parent 130e5bfa9f
commit 9577929e0d
11 changed files with 0 additions and 366 deletions

View file

@ -31,8 +31,6 @@ export default defineEventHandler(async (event) => {
"bioPrivacy",
"locationPrivacy",
"socialLinksPrivacy",
"offeringPrivacy",
"lookingForPrivacy",
"craftTagsPrivacy",
"communityConnectionsPrivacy",
];
@ -51,20 +49,6 @@ export default defineEventHandler(async (event) => {
updateData.craftTags = body.craftTags;
}
// Handle offering and lookingFor separately (nested objects)
if (body.offering !== undefined) {
updateData.offering = {
text: body.offering.text || "",
tags: body.offering.tags || [],
};
}
if (body.lookingFor !== undefined) {
updateData.lookingFor = {
text: body.lookingFor.text || "",
tags: body.lookingFor.tags || [],
};
}
// Handle privacy settings
privacyFields.forEach((privacyField) => {
if (body[privacyField] !== undefined) {
@ -107,8 +91,6 @@ export default defineEventHandler(async (event) => {
bio: member.bio,
location: member.location,
socialLinks: member.socialLinks,
offering: member.offering,
lookingFor: member.lookingFor,
craftTags: member.craftTags,
showInDirectory: member.showInDirectory,
notifications: member.notifications,