Skip to content

Conversation

nikitar
Copy link
Member

@nikitar nikitar commented Oct 20, 2026

Formål

Refaktoreringen har som mål å forbedre separasjon av ansvar, gjenbrukbarhet, lesbarhet og vedlikeholdbarhet uten å endre applikasjonens grunnleggende funksjonalitet.

Endringer

  • Restrukturert frontend-arkitekturen

    • Opprettet components/common/ for felles, gjenbrukbare komponenter.
    • Flyttet Layout, Navigation og FeedbackCard til den nye strukturen.
    • Organisert ThreatActor-komponentene i catalog/ og detailed/.
    • Samlet ThreatActor-sidene under pages/ThreatActor/.
  • Opprettet gjenbrukbare UI-komponenter

    • Implementert en felles PageHeader for konsistent sidetittel og beskrivelse.
    • Implementert en felles SearchBar med støtte for søk og brukerdefinerte callbacks.
    • Erstattet tidligere ThreatActor-spesifikke komponenter med gjenbrukbare alternativer.
    • Oppdatert relevante sider og komponenter til å bruke den nye strukturen.
  • Refaktorert ThreatActor-katalogen

    • Flyttet state og event handlers fra ThreatActors.tsx til useThreatActorCatalog.ts.
    • Flyttet GraphQL-datainnhenting til useThreatActorCatalogQueries.ts.
    • Separert aktive søke- og filterverdier fra verdier brukeren fortsatt redigerer.
    • Beholdt søk, filtrering, sortering og paginering gjennom eksisterende GraphQL-integrasjon.
    • Forenklet ThreatActors.tsx slik at komponenten hovedsakelig håndterer presentasjon.
  • Refaktorert ThreatActor-detaljsiden

    • Opprettet useThreatActorDetail.ts for håndtering av paginering.
    • Opprettet useThreatActorDetailQueries.ts for uthenting av profilinformasjon, teknikker og programvarer.
    • Separert datainnhenting fra presentasjonslogikken i ThreatActorDetailed.tsx.
    • Implementert nullstilling av lokal state ved navigasjon mellom forskjellige Threat Actors ved hjelp av key={mitreId}.
  • Forbedret TypeScript-strukturen

    • Samlet ThreatActor-relaterte typer i ThreatActorTypes.ts.
    • Gruppért og dokumentert typene etter katalog, filtrering, detaljvisning, tilknyttede entiteter og GraphQL.
    • Flyttet ThreatActorFilterValues og DEFAULT_FILTERS ut av filterkomponenten.
    • Oppdatert importene slik at hooks og komponenter benytter felles typedefinisjoner.
  • Ryddet opp i prosjektstrukturen

    • Flyttet GraphQL-queryfilene direkte under graphql/.
    • Oppdatert importstier etter flytting og omorganisering av komponenter.
    • Fjernet ubrukte placeholder-filer, utdaterte oppsettfiler og enkelte gamle stilfiler.
    • Standardisert kodeformattering i store deler av frontend, inkludert CSS og TSX.
    • Oppdatert eksisterende komponenter på tvers av Home, Software, Tactics, Techniques og SavedItems.

Closes #87

@nikitar nikitar added the enhancement New feature or request label Oct 20, 2026
@nikitar nikitar requested a review from a team as a code owner October 20, 2026 14:27
Sign in to join this conversation on GitHub.
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rydde opp strukturen i ThreatActor
1 participant