diff --git a/.prettierrc b/.prettierrc index 8103a0b..8855237 100644 --- a/.prettierrc +++ b/.prettierrc @@ -3,7 +3,10 @@ "singleQuote": true, "trailingComma": "none", "printWidth": 100, - "plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"], + "plugins": [ + "prettier-plugin-svelte", + "prettier-plugin-tailwindcss" + ], "overrides": [ { "files": "*.svelte", diff --git a/bun.lock b/bun.lock index 65a6ea0..4622ea0 100644 --- a/bun.lock +++ b/bun.lock @@ -1,10 +1,11 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "mini-x-front", "dependencies": { - "mode-watcher": "^1.1.0" + "mode-watcher": "^1.1.0", }, "devDependencies": { "@internationalized/date": "^3.8.1", @@ -15,9 +16,9 @@ "@tailwindcss/vite": "^4.1.14", "bits-ui": "^2.11.0", "clsx": "^2.1.1", - "prettier": "^3.6.2", + "prettier": "^3.7.4", "prettier-plugin-svelte": "^3.4.0", - "prettier-plugin-tailwindcss": "^0.7.1", + "prettier-plugin-tailwindcss": "^0.7.2", "svelte": "^5.41.0", "svelte-check": "^4.3.3", "tailwind-merge": "^3.3.1", @@ -25,9 +26,9 @@ "tailwindcss": "^4.1.14", "tw-animate-css": "^1.4.0", "typescript": "^5.9.3", - "vite": "^7.1.10" - } - } + "vite": "^7.1.10", + }, + }, }, "packages": { "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], @@ -368,11 +369,11 @@ "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], - "prettier": ["prettier@3.6.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ=="], + "prettier": ["prettier@3.7.4", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA=="], "prettier-plugin-svelte": ["prettier-plugin-svelte@3.4.0", "", { "peerDependencies": { "prettier": "^3.0.0", "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" } }, "sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ=="], - "prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.7.1", "", { "peerDependencies": { "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-hermes": "*", "@prettier/plugin-oxc": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", "prettier-plugin-svelte": "*" }, "optionalPeers": ["@ianvs/prettier-plugin-sort-imports", "@prettier/plugin-hermes", "@prettier/plugin-oxc", "@prettier/plugin-pug", "@shopify/prettier-plugin-liquid", "@trivago/prettier-plugin-sort-imports", "@zackad/prettier-plugin-twig", "prettier-plugin-astro", "prettier-plugin-css-order", "prettier-plugin-jsdoc", "prettier-plugin-marko", "prettier-plugin-multiline-arrays", "prettier-plugin-organize-attributes", "prettier-plugin-organize-imports", "prettier-plugin-sort-imports", "prettier-plugin-svelte"] }, "sha512-Bzv1LZcuiR1Sk02iJTS1QzlFNp/o5l2p3xkopwOrbPmtMeh3fK9rVW5M3neBQzHq+kGKj/4LGQMTNcTH4NGPtQ=="], + "prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.7.2", "", { "peerDependencies": { "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-hermes": "*", "@prettier/plugin-oxc": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", "prettier-plugin-svelte": "*" }, "optionalPeers": ["@ianvs/prettier-plugin-sort-imports", "@prettier/plugin-hermes", "@prettier/plugin-oxc", "@prettier/plugin-pug", "@shopify/prettier-plugin-liquid", "@trivago/prettier-plugin-sort-imports", "@zackad/prettier-plugin-twig", "prettier-plugin-astro", "prettier-plugin-css-order", "prettier-plugin-jsdoc", "prettier-plugin-marko", "prettier-plugin-multiline-arrays", "prettier-plugin-organize-attributes", "prettier-plugin-organize-imports", "prettier-plugin-sort-imports", "prettier-plugin-svelte"] }, "sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA=="], "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], @@ -490,6 +491,6 @@ "wrap-ansi-cjs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - "wrap-ansi-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="] + "wrap-ansi-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], } } diff --git a/package.json b/package.json index 631d920..23ebb7e 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,9 @@ "@tailwindcss/vite": "^4.1.14", "bits-ui": "^2.11.0", "clsx": "^2.1.1", - "prettier": "^3.6.2", + "prettier": "^3.7.4", "prettier-plugin-svelte": "^3.4.0", - "prettier-plugin-tailwindcss": "^0.7.1", + "prettier-plugin-tailwindcss": "^0.7.2", "svelte": "^5.41.0", "svelte-check": "^4.3.3", "tailwind-merge": "^3.3.1", diff --git a/src/lib/components/CardPerfil.svelte b/src/lib/components/CardPerfil.svelte index 2ca9644..01d7caf 100644 --- a/src/lib/components/CardPerfil.svelte +++ b/src/lib/components/CardPerfil.svelte @@ -20,6 +20,7 @@ let cargando = $state(false); let hoverimg = $state(false); let image: File | null = $state(null); + let usu = $state({displayName: data.displayName, bio: data.bio}) async function cambiarFotoDePerfil() { const input = document.createElement('input'); @@ -85,11 +86,11 @@

- {data.displayName} + {usu.displayName}

@{data.username}

-

- {data.bio} +

+ {@html usu.bio.replaceAll("\n", "
")}

{:else}
@@ -106,11 +107,11 @@

- {data.displayName} + {usu.displayName}

@{data.username}

-

- {data.bio} +

+ {@html usu.bio.replaceAll("\n", "
")}

{/if}
diff --git a/src/lib/components/DialogModificarUsuario.svelte b/src/lib/components/DialogModificarUsuario.svelte new file mode 100644 index 0000000..3b06caa --- /dev/null +++ b/src/lib/components/DialogModificarUsuario.svelte @@ -0,0 +1,104 @@ + + + + +
+ +
+
+
+ + + +

Modificar Usuario

+
+
+ + + + Nombre + + + + + + bio + + + + + Email + + + + + + +
+
+
diff --git a/src/lib/hooks/updateUsuario.ts b/src/lib/hooks/updateUsuario.ts index aa6a820..8ced334 100644 --- a/src/lib/hooks/updateUsuario.ts +++ b/src/lib/hooks/updateUsuario.ts @@ -1,48 +1,50 @@ -import { apiBase } from "@/stores/url" -import { sesionStore } from "@/stores/usuario" -import { get } from "svelte/store" +import { apiBase } from '@/stores/url'; +import { sesionStore } from '@/stores/usuario'; +import { get } from 'svelte/store'; export interface AdminUpdateUsuario { - id:string, - displayName: string | null, - bio: string | null, - profileImage:boolean, - image:File, - profileImageUrl:string|null + id: string; + displayName: string | null; + bio: string | null; + profileImage: boolean; + image: File; + profileImageUrl: string | null; } export async function updateUsuario(usuario: Partial) { + const formData = new FormData(); + if (usuario.displayName) formData.append('displayName', usuario.displayName); + if (usuario.bio) formData.append('bio', usuario.bio); + if (usuario.profileImage) { + if (usuario.profileImageUrl) formData.append('profileImageUrl', 'null'); + } else { + if (usuario.profileImageUrl) { + formData.append('profileImageUrl', usuario.profileImageUrl); + } else { + if (usuario.image) formData.append('profileImage', usuario.image); + } + } - const formData = new FormData(); - if (usuario.displayName) formData.append('displayName', usuario.displayName); - if (usuario.bio) formData.append('bio', usuario.bio); - if (usuario.image) formData.append('profileImage', usuario.image); - if (usuario.profileImage){ - if (usuario.profileImageUrl) formData.append('profileImageUrl', 'null'); - }else{ - if (usuario.profileImageUrl) formData.append('profileImageUrl', usuario.profileImageUrl); - } + try { + const req = await fetch(get(apiBase) + '/api/users/' + usuario.id, { + method: 'PUT', + headers: { + Authorization: `Bearer ${get(sesionStore)?.accessToken}` + }, + body: formData + }); + if (req.status === 204) { + let ret = { + // bio: usuario.bio, + displayName: usuario.displayName + // oldImageUrl: usuario.oldImageUrl, + }; + return ret; + } + const dataa = await req.json(); - try { - const req = await fetch(get(apiBase) + "/api/users/"+usuario.id, { - method: "PUT", - headers: { - Authorization: `Bearer ${get(sesionStore)?.accessToken}` - }, - body: formData, - }); - if (req.status === 204) { - let ret = { - // bio: usuario.bio, - displayName: usuario.displayName, - // oldImageUrl: usuario.oldImageUrl, - } - return ret; - } - const dataa = await req.json(); - - return dataa.message; - } catch { - return "No se pudo alcanzar el servidor" - } + return dataa.message; + } catch { + return 'No se pudo alcanzar el servidor'; + } } diff --git a/src/routes/[perfil]/+page.svelte b/src/routes/[perfil]/+page.svelte index 50d0170..6415421 100644 --- a/src/routes/[perfil]/+page.svelte +++ b/src/routes/[perfil]/+page.svelte @@ -1,9 +1,6 @@ - +{$inspect(data)}
@@ -136,11 +130,7 @@
-
- -
+