import QRCode from "qrcode";

const QRCODE_KEY = "recycleQrcodeBase64";

export function generateQrcode(text: string): Promise<string> {
	return new Promise((resolve) => {
		QRCode.toDataURL(
			text,
			{
				width: 300,
				margin: 2,
			},
			(err, url) => {
				if (err) {
					console.error("❌ 二维码生成失败", err);
					resolve("");
					return;
				}
				resolve(url);
			},
		);
	});
}

export function generateRecycleQrcode(text: string): Promise<string> {
	return new Promise((resolve) => {
		const cached = uni.getStorageSync(QRCODE_KEY);
		if (cached) return resolve(cached);

		generateQrcode(text).then((url) => {
			if (url) {
				uni.setStorageSync(QRCODE_KEY, url);
			}
			resolve(url);
		});
	});
}

/**
 * 清除指定二维码缓存
 * @param key
 */
export function clearQrcodeCache(key: string) {
	uni.removeStorageSync(key);
}

/**
 * 清除所有二维码缓存
 */
export function clearAllQrcodeCache() {
	uni.clearStorageSync();
}