From c02ccfd274136c790868f49c3b95d4081c72ff66 Mon Sep 17 00:00:00 2001 From: John Costa Date: Fri, 11 Apr 2025 20:31:51 +0100 Subject: [PATCH] feat: contacts working --- backend/main.go | 9 ++++++++- backend/models/user.go | 2 ++ frontend/src/App.tsx | 11 ++++++----- .../src/components/search-card/SearchCardContact.tsx | 12 +++++++----- frontend/src/network/index.ts | 6 ++++++ 5 files changed, 29 insertions(+), 11 deletions(-) diff --git a/backend/main.go b/backend/main.go index e0b58e3..032434a 100644 --- a/backend/main.go +++ b/backend/main.go @@ -107,6 +107,13 @@ func main() { Data: note, }) } + + for _, contact := range image.Contacts { + dataTypes = append(dataTypes, DataType{ + Type: "contact", + Data: contact, + }) + } } jsonImages, err := json.Marshal(dataTypes) @@ -210,7 +217,7 @@ func main() { return } - userImage, err := imageModel.Process(r.Context(), uuid.MustParse(userId), model.Image{ + userImage, err := imageModel.Process(r.Context(), userId, model.Image{ Image: image, ImageName: imageName, }) diff --git a/backend/models/user.go b/backend/models/user.go index ff72d24..5e5dd1b 100644 --- a/backend/models/user.go +++ b/backend/models/user.go @@ -39,6 +39,8 @@ type ImageWithProperties struct { } Notes []model.Notes + + Contacts []model.Contacts } func getUserIdFromImage(ctx context.Context, dbPool *sql.DB, imageId uuid.UUID) (uuid.UUID, error) { diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 4ab8981..844d7c1 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,13 +1,14 @@ +import { A } from "@solidjs/router"; import { IconSearch } from "@tabler/icons-solidjs"; import clsx from "clsx"; import Fuse from "fuse.js"; import { For, createEffect, createResource, createSignal } from "solid-js"; import { SearchCardEvent } from "./components/search-card/SearchCardEvent"; import { SearchCardLocation } from "./components/search-card/SearchCardLocation"; -import { UserImage, getUserImages } from "./network"; -import { getCardSize } from "./utils/getCardSize"; import { SearchCardNote } from "./components/search-card/SearchCardNote"; -import { A } from "@solidjs/router"; +import { type UserImage, getUserImages } from "./network"; +import { getCardSize } from "./utils/getCardSize"; +import { SearchCardContact } from "./components/search-card/SearchCardContact"; const getCardComponent = (item: UserImage) => { switch (item.type) { @@ -17,8 +18,8 @@ const getCardComponent = (item: UserImage) => { return ; case "note": return ; - // case "Contact": - // return ; + case "contact": + return ; // case "Website": // return ; // case "Note": diff --git a/frontend/src/components/search-card/SearchCardContact.tsx b/frontend/src/components/search-card/SearchCardContact.tsx index e817e34..066fae3 100644 --- a/frontend/src/components/search-card/SearchCardContact.tsx +++ b/frontend/src/components/search-card/SearchCardContact.tsx @@ -1,10 +1,10 @@ import { Separator } from "@kobalte/core/separator"; import { IconUser } from "@tabler/icons-solidjs"; -import type { Contact } from "../../network/types"; +import type { UserImage } from "../../network"; type Props = { - item: Contact; + item: Extract; }; export const SearchCardContact = ({ item }: Props) => { @@ -13,13 +13,15 @@ export const SearchCardContact = ({ item }: Props) => { return (
-

{data.name}

+

{data.Name}

-

{data.phoneNumber}

+

{data.PhoneNumber}

+ +

{data.Email}

- {data.notes} + {data.Description}

); diff --git a/frontend/src/network/index.ts b/frontend/src/network/index.ts index 9c5100c..1fd94b5 100644 --- a/frontend/src/network/index.ts +++ b/frontend/src/network/index.ts @@ -109,10 +109,16 @@ const noteDataType = strictObject({ data: noteValidator, }); +const contactDataType = strictObject({ + type: literal("contact"), + data: contactValidator, +}); + const dataTypeValidator = variant("type", [ locationDataType, eventDataType, noteDataType, + contactDataType, ]); const getUserImagesResponseValidator = array(dataTypeValidator);