vue_website_template/src/stores/landingPageView.js

38 lines
2.2 KiB
JavaScript

// src/stores/landingPageView.js
import { defineStore } from 'pinia';
const IMAGE_BASE_URL = ''; // ให้เป็น string ว่างเปล่าเพื่อใช้ Path สัมพัทธ์กับ Public folder
export const useLandingPageViewStore = defineStore('landingPageView', {
state: () => ({
// ข้อมูล Mock สำหรับ Main Banner (จาก app.js เดิม)
mainBanner: {
url: '/images/MainBanner.jpg', // Path รูปภาพ Main Banner
link: 'www.google.com', // ลิงก์สำหรับรูป
startDate: '01/01/2025', // ต้องเป็น MM/DD/YYYY
endDate: '12/31/2025', // ต้องเป็น MM/DD/YYYY (กำหนดให้แสดงตลอดปี)
},
// ถ้ามีข้อมูลอื่นๆ ที่เกี่ยวข้องกับ Landing Page โดยเฉพาะ ก็สามารถเพิ่มที่นี่ได้
// เช่น backgroundImage, logoImage, text
backgroundImage: { url: '/images/moroccan-flower.png' }, // ตัวอย่าง
}),
getters: {
imageBaseUrl: (state) => IMAGE_BASE_URL,
// Getter สำหรับดึงข้อมูล Main Banner
mainBannerData: (state) => state.mainBanner,
// getters อื่นๆ สำหรับข้อมูลเฉพาะ Landing Page
getBackgroundImage: (state) => `${IMAGE_BASE_URL}${state.backgroundImage?.url || ''}`,
},
actions: {
// ถ้าในอนาคต Landing Page มีการดึงข้อมูลจาก API จริงๆ ค่อยมาใส่ใน Action นี้
async fetchLandingPageData() {
// จำลองการโหลดข้อมูล หรือดึงข้อมูลจาก API จริงๆ
await new Promise(resolve => setTimeout(resolve, 100));
console.log("Landing Page Data Loaded from dedicated store.");
// ในกรณีที่มี API จริง อาจจะมีการอัปเดต state ตรงนี้
},
},
});