Chuyển tới nội dung chính

Constants (@vppos/core/constants)

import { STORAGE_KEYS, MODULE_KEYS, ROLES } from "@vppos/core/constants";

STORAGE_KEYS

Keys cho localStorage/sessionStorage. Luôn dùng constant này — không hard-code string.

// ✅ Đúng
localStorage.getItem(STORAGE_KEYS.token);

// ❌ Sai
localStorage.getItem("access_token");

MODULE_KEYS

Keys cho module permission (match với backend):

MODULE_KEYS.PRODUCTS; // "products"
MODULE_KEYS.WAREHOUSE; // "warehouse"
MODULE_KEYS.ROLE_PERMISSION_MANAGEMENT;
MODULE_KEYS.BRANCH_STORE;
MODULE_KEYS.USERS;

ROLES

User roles:

ROLES.SUPER_ADMIN; // "superadmin"
ROLES.ADMIN; // "admin"
ROLES.STAFF; // "staff"

IMAGES

Hằng số quản lý toàn bộ assets (ảnh, icon) của hệ thống. Không sử dụng URL từ xa (https://...) cho các ảnh hệ thống.

import { IMAGES } from "@vppos/core/constants";

// ✅ Ảnh dùng chung từ Core
<img src={IMAGES.SYSTEM.UNDER_DEVELOPMENT} />
<img src={IMAGES.SYSTEM.ERROR_404} />

// ✅ Ảnh fallback mặc định khi data API bị thiếu
<Avatar src={user.avatar || IMAGES.DEFAULT.AVATAR} />
<Avatar src={company.logo || IMAGES.DEFAULT.COMPANY} />

Các phân cấp chính:

  • DEFAULT: Các ảnh fallback/placeholder (Avatar, Company, General Fallback).
  • BRAND: Core identity (Logo các ngân hàng, Favicon...).
  • SYSTEM: UI assets dùng chung (OTP, 404, Zalo, Flags...).
thông tin

Nếu là ảnh riêng của một module cụ thể (ví dụ: ảnh minh họa tính năng), hãy đặt tại apps/<module>/src/assets và import tĩnh vào component.

Quy tắc

cảnh báo

Nếu cần thêm constant mới dùng chung → thêm vào @vppos/core/constants, không tự tạo trong app.