8 Commits

Author SHA1 Message Date
Grey 000807d646 Merge branch 'fitur-jualbarang' into dev 2026-05-15 19:19:44 +07:00
miko f118ca8489 mengubah deskripsi tulisan jualbarang 2026-05-15 18:51:20 +07:00
Grey ee74ab393c Merge branch 'fitur-home' into dev 2026-05-15 18:11:41 +07:00
Grey 0f66595775 Merge branch 'fitur-navbar' into dev 2026-05-15 18:09:00 +07:00
Grey d855f2e75a style:mengubah icon home view 2026-05-15 18:01:55 +07:00
miko f7dbc170c8 mengubah deskripsi tulisan pada card login 2026-05-15 18:00:21 +07:00
miko cbb8136cdd mengubah deskripsi tulisan pada homeView 2026-05-15 17:49:20 +07:00
miko 9b36480661 mengubah logo dan warna via WA 2026-05-15 17:40:09 +07:00
8 changed files with 87 additions and 27 deletions
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 513 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

+6 -2
View File
@@ -2,8 +2,12 @@
<header class="sticky top-0 z-50 border-b border-slate-200 bg-white/90 backdrop-blur"> <header class="sticky top-0 z-50 border-b border-slate-200 bg-white/90 backdrop-blur">
<div class="container-page flex h-16 items-center justify-between"> <div class="container-page flex h-16 items-center justify-between">
<RouterLink to="/" class="flex items-center gap-2"> <RouterLink to="/" class="flex items-center gap-2">
<div class="flex h-9 w-9 items-center justify-center rounded-xl bg-brand-600 text-white"> <div class="flex items-center justify-center">
<Cpu size="20" /> <img
src="/round-logo-sija.png"
alt="SecondTech Logo"
class="h-10 w-10 object-contain"
/>
</div> </div>
<span class="text-lg font-extrabold tracking-tight">SecondTech</span> <span class="text-lg font-extrabold tracking-tight">SecondTech</span>
</RouterLink> </RouterLink>
+36 -9
View File
@@ -98,13 +98,40 @@ export const products = [
] ]
export const categories = [ export const categories = [
"Semua", {
"Laptop", name: "Semua",
"PC", icon: "Boxes"
"Monitor", },
"Keyboard", {
"Router", name: "Laptop",
"Switch", icon: "Laptop"
"Server", },
"Access Point" {
name: "PC",
icon: "PcCase"
},
{
name: "Monitor",
icon: "Monitor"
},
{
name: "Keyboard",
icon: "Keyboard"
},
{
name: "Router",
icon: "Router"
},
{
name: "Switch",
icon: "Network"
},
{
name: "Server",
icon: "Server"
},
{
name: "Access Point",
icon: "Wifi"
}
] ]
+40 -11
View File
@@ -6,10 +6,10 @@
Marketplace Barang Bekas Teknologi Marketplace Barang Bekas Teknologi
</span> </span>
<h1 class="mt-6 text-4xl font-extrabold tracking-tight text-slate-950 sm:text-5xl lg:text-6xl"> <h1 class="mt-6 text-4xl font-extrabold tracking-tight text-slate-950 sm:text-5xl lg:text-6xl">
Jual beli perangkat IT bekas jadi lebih mudah. Jual beli perangkat Teknologi bekas.
</h1> </h1>
<p class="mt-6 max-w-xl text-lg leading-8 text-slate-600"> <p class="mt-6 max-w-xl text-lg leading-8 text-slate-600">
Temukan laptop bekas, PC, monitor, keyboard, router, switch, access point, dan server bekas untuk kebutuhan belajar SIJA/TKJ. Temukan laptop bekas, PC, monitor, keyboard, router, switch, access point, dan server bekas untuk berbagai kebutuhan.
</p> </p>
<div class="mt-8 flex flex-wrap gap-3"> <div class="mt-8 flex flex-wrap gap-3">
<RouterLink to="/jual" class="btn-primary">Jual Barang Sekarang</RouterLink> <RouterLink to="/jual" class="btn-primary">Jual Barang Sekarang</RouterLink>
@@ -38,12 +38,17 @@
</div> </div>
<div class="grid grid-cols-2 gap-4 sm:grid-cols-3 lg:grid-cols-6"> <div class="grid grid-cols-2 gap-4 sm:grid-cols-3 lg:grid-cols-6">
<div v-for="cat in categoryList" :key="cat" class="card p-5 text-center transition hover:-translate-y-1 hover:shadow-md"> <div
<div class="mx-auto mb-3 flex h-12 w-12 items-center justify-center rounded-2xl bg-brand-50 text-brand-700"> v-for="cat in categoryList"
<Cpu size="22" /> :key="cat.name"
</div> class="card p-5 text-center transition hover:-translate-y-1 hover:shadow-md"
<p class="font-bold">{{ cat }}</p> >
</div> <div class="mx-auto mb-3 flex h-12 w-12 items-center justify-center rounded-2xl bg-brand-50 text-brand-700">
<component :is="iconMap[cat.icon]" :size="22" />
</div>
<p class="font-bold">{{ cat.name }}</p>
</div>
</div> </div>
</section> </section>
@@ -71,14 +76,38 @@
<script setup> <script setup>
import { computed, ref } from "vue" import { computed, ref } from "vue"
import { Cpu } from "lucide-vue-next"
import ProductCard from "../components/ProductCard.vue" import ProductCard from "../components/ProductCard.vue"
import { products, categories } from "../data/products"
import { getSavedProducts, setSavedProducts } from "../utils" import { getSavedProducts, setSavedProducts } from "../utils"
import {
Boxes,
Laptop,
PcCase,
Monitor,
Keyboard,
Router,
Network,
Server,
Wifi
} from "lucide-vue-next"
import { products, categories } from "../data/products"
const saved = ref(getSavedProducts()) const saved = ref(getSavedProducts())
const categoryList = categories.filter((c) => c !== "Semua").slice(0, 6) const categoryList = categories
.filter((category) => category.name !== "Semua")
.slice(0, 6)
const latestProducts = computed(() => products.slice(0, 4)) const latestProducts = computed(() => products.slice(0, 4))
const iconMap = {
Boxes,
Laptop,
PcCase,
Monitor,
Keyboard,
Router,
Network,
Server,
Wifi
}
function toggleSave(id) { function toggleSave(id) {
if (saved.value.includes(id)) { if (saved.value.includes(id)) {
+2 -2
View File
@@ -1,8 +1,8 @@
<template> <template>
<section class="container-page grid min-h-[70vh] place-items-center py-10"> <section class="container-page grid min-h-[70vh] place-items-center py-10">
<div class="card w-full max-w-md p-6"> <div class="card w-full max-w-md p-6">
<h1 class="text-2xl font-extrabold">Login</h1> <h1 class="text-2xl font-extrabold">Selamat Datang Kembali!</h1>
<p class="mt-2 text-sm text-slate-600">Masuk untuk mengelola barang jualanmu.</p> <p class="mt-2 text-sm text-slate-600">Masuk dan lanjutkan jualanmu.</p>
<form class="mt-6 grid gap-4" @submit.prevent="login"> <form class="mt-6 grid gap-4" @submit.prevent="login">
<p v-if="errorMessage" class="rounded-xl bg-red-50 px-4 py-3 text-sm font-semibold text-red-700"> <p v-if="errorMessage" class="rounded-xl bg-red-50 px-4 py-3 text-sm font-semibold text-red-700">
+1 -1
View File
@@ -45,7 +45,7 @@
</div> </div>
<div class="mt-8 flex flex-wrap gap-3"> <div class="mt-8 flex flex-wrap gap-3">
<a :href="waLink" target="_blank" class="btn-primary">Hubungi via WhatsApp</a> <a :href="waLink" target="_blank" class="btn-WA">Hubungi via WhatsApp</a>
<button class="btn-secondary" @click="toggleSave"> <button class="btn-secondary" @click="toggleSave">
{{ saved ? "Hapus dari Tersimpan" : "Simpan Barang" }} {{ saved ? "Hapus dari Tersimpan" : "Simpan Barang" }}
</button> </button>
+2 -2
View File
@@ -2,7 +2,7 @@
<section class="container-page py-10"> <section class="container-page py-10">
<div class="mb-8"> <div class="mb-8">
<h1 class="text-3xl font-extrabold">Jual Barang</h1> <h1 class="text-3xl font-extrabold">Jual Barang</h1>
<p class="mt-2 text-slate-600">Posting barang ke marketplace dengan foto asli dari perangkatmu.</p> <p class="mt-2 text-slate-600">Posting barang anda ke marketplace dengan foto produk asli.</p>
</div> </div>
<div class="grid gap-8 lg:grid-cols-[1fr_360px]"> <div class="grid gap-8 lg:grid-cols-[1fr_360px]">
@@ -65,7 +65,7 @@
<div> <div>
<label class="label">Deskripsi</label> <label class="label">Deskripsi</label>
<textarea v-model="form.description" class="input mt-2 min-h-32" placeholder="Jelaskan kondisi barang..." required></textarea> <textarea v-model="form.description" class="input mt-2 min-h-32" placeholder="Deskripsikan kondisi barang anda..." required></textarea>
</div> </div>
<button class="btn-primary w-full" :disabled="loading"> <button class="btn-primary w-full" :disabled="loading">