Commit Graph
24 Commits
Author SHA1 Message Date
tianhao bbff631f4f release: v0.4.0 — React 适配器、loading链式id稳定、dragThreshold、RTL适配、dedupe插件
- React 适配器子包:@metona-team/metona-toast/react — useToast() hook + 声明式 <Toast /> 组件,组件卸载自动清理;react 为 optional peerDependency,主包保持零依赖
- loading 链式转换改原地 update:id 稳定不重建 DOM,转换后 duration 恢复默认自动关闭;update() 支持 duration 变更动态重启计时器
- _emit 幽灵实例修复:beforeShow 拦截后的 toast 不再注册进 _toasts
- dragThreshold 配置项(默认 120px,原硬编码);RTL 容器 dir 属性 + 进度条/side 条/色条镜像
- dedupe 预设插件:相同 type+message 自动去重,支持 uninstall
- jest 环境隔离测试独立成 tests/ssr.test.ts(resetModules 不再污染共享模块状态);新增 tests/setup.ts 补 TextEncoder
- 文档:README/docs.html 补 React 适配器、dedupe、dragThreshold;CHANGELOG 更新;328 测试全过
2026-08-08 14:45:19 +08:00
tianhao 2937ce5e2d release: v0.3.0 — 自定义动画真实生效、max超限修复、钩子系统完整化、destroy全量清理
- 自定义动画:animations.register() 注册的动画动态注入 keyframes 真实生效(此前仅存 Map 实际 fallback slide)
- max 超限:通过实例注册表真正 close() 最早的 toast(此前仅删内存记录,DOM 残留)
- 钩子收敛:beforeClose/beforeUpdate 支持返回 false 拦截;接入 click/hover/dragStart/dragEnd/animationStart/animationEnd/progressStart/progressEnd/configChange/themeChange/localeChange/beforeInit/afterInit/beforeDestroy/afterDestroy;HOOK_NAMES 移除永不触发的声明
- destroy() 全量清理:hooks、实例注册表、全部 metona-toast-* 样式标签;动画注册表真正清空
- applyThemeVariables 重复注入修复;init() 支持插件对象并复活 _destroyed;AnimationConfig 类型放宽
- VERSION 统一到 constants.ts 唯一维护;删除失效 scripts;新增 .gitattributes 统一 LF
- docs.html 补 v0.2.1 新 API 文档;CHANGELOG 更新;测试 309 用例全过
2026-08-08 14:23:41 +08:00
thzxx bc1128bd1f release: v0.2.1 — bug修复、代码去重、功能增强、覆盖率88.57% 2026-07-25 13:01:59 +08:00
tianhao 9a6cd33d90 release: v0.2.0 — TypeScript 源码重构
CI / test (18.x) (push) Successful in 9m52s
CI / test (22.x) (push) Canceled after 0s
CI / test (24.x) (push) Canceled after 0s
CI / test (20.x) (push) Canceled after 2m49s
### Changed
- 全部源码从 JavaScript 迁移到 TypeScript (strict mode)
- core.js (1244行) 拆分为 toast.ts + api.ts + templates.ts
- 删除手动维护的 types/index.d.ts,类型从源码自动生成
- 构建工具链: Babel → ts-jest, 新增 @rollup/plugin-typescript
- 新增 rollup-plugin-dts 生成合并 .d.ts

### Added
- tsconfig.json (strict: true)
- src/types.ts 核心类型模块 (39 个导出类型)
- .eslintrc.json (@typescript-eslint)
- .gitea/workflows/ci.yml (Node 18/20/22/24 矩阵)
- CHANGELOG.md

### Aligned with metona-starter
- package.json: type:module, engines≥16, prepublishOnly
- rollup.config.js: dts plugin, port 3001
- jest.config.cjs, build.sh, serve.sh, .gitignore (.npmrc)

### Removed
- babel.config.js, types/ 目录, 所有 src/*.js
2026-07-25 11:22:07 +08:00
thzxx f7d74d152d chore: v0.1.2 — 全面修复、优化与增强
修复:
- core.js: _resume 计时器 BUG (startedAt 被 _startTimer 覆盖导致暂停恢复失效)
- plugins.js: register 在 install 前展开导致 handler 实例丢失
- locales.js: zh-CN/en-US 大量重复 key 覆盖正确翻译值
- core.js: configure 改为原地更新避免 _config 引用断裂

优化:
- core.js: update() 类型变更时同步更新 DOM 类名和进度条颜色
- animations.js: getActiveCount 返回已注册动画数量
- themes.js: 移除 presetThemes 死代码和重复注册循环
- constants.js: THEMES.auto 从字符串改为规范化对象
- index.js: destroy 添加防重复调用保护

增强:
- core.js: 新增 onError 全局错误回调,钩子异常和定时器错误可被外部捕获
- styles.js: _resume 校准时间基准补偿注释
- 139 tests 全部通过
2026-07-24 14:42:47 +08:00
thzxx eebd669b7f chore: 版本号重置为 v0.1.1, 更新 site/ 文档页面移除 v2.0 标记 2026-07-24 14:19:53 +08:00
thzxx b4ffaabedd chore: v2.0.1 - 精简dead code + 版本升级
- utils.js: 950行→180行,移除30+未使用函数
- styles.js: 1800行→650行,移除未使用组件样式和重复规则
- animations.js: 850行→120行,移除Web Animations API dead code
- 全项目版本号升级到 2.0.1
- 测试同步清理,134/134通过
2026-07-23 13:18:24 +08:00
tianhao cab5ef1d55 fix: 删除非规定别名window.metonaToast,全局仅保留MeToast和Met 2026-06-16 13:56:04 +08:00
tianhao de44c04c35 chore: 更新项目地址为gitee.com/thzxx/MetonaToast; author改为thzxx 2026-06-16 13:36:17 +08:00
tianhao 86bfcc4102 fix: 激活gap/offset死配置; 优化style空对象遍历 2026-06-16 13:22:33 +08:00
tianhao 900e965ae6 fix(#24,#25,#26,#27,#30): action按钮顺序; group边界; Notification权限; queue catch; 新增功能测试 2026-06-16 13:09:50 +08:00
tianhao 531438cc9c fix(#28,#29): DEFAULTS补全notifyWhenHidden; types补全action/group/QueueControl/ActionButton等新增API类型 2026-06-16 13:09:03 +08:00
tianhao 4df6e35d51 feat: Toast分组管理 — group()/dismissGroup() 2026-06-16 13:02:46 +08:00
tianhao 23745952e5 feat: Notification API + 自定义渲染函数 + stack独立配置完善 2026-06-16 13:02:23 +08:00
tianhao 88ae899d96 feat: RTL布局支持 — close动画方向自动适配语言方向 2026-06-16 13:01:25 +08:00
tianhao fc3132f330 feat: Action Toast — 内嵌操作按钮的通知 2026-06-16 13:00:48 +08:00
tianhao 25fb1b1d48 feat: resetTimerOnUpdate + onUpdate回调 + queue可取消 2026-06-16 13:00:10 +08:00
tianhao 34417d0057 perf(#21): 简化 themes.js/i18n.js 代理样板 — 290+296行→17+22行 2026-06-16 12:53:05 +08:00
tianhao 093dcdebd8 fix(#19,#22,#23): 动画取消reject替代resolve; config.style深拷贝; queue消息级duration/onClose优先 2026-06-16 12:52:03 +08:00
tianhao 56bac1fa0f fix(#9,#16,#17): 移除未使用import; 合并重复CSS @media print; accessibility从i18n读取类型名 2026-06-16 12:42:36 +08:00
tianhao 7bc2bf6ace fix(#3,#4,#6,#8): _palette从THEMES读取颜色; countdown全局替换; queue保留用户onClose; WeakMap→Map并清理 2026-06-16 12:41:33 +08:00
tianhao 2e361d40e8 fix(#2): Promise泄漏 — confirm/prompt 添加10秒安全超时,防止永不resolve 2026-06-16 12:40:39 +08:00
tianhao 9ce1809928 fix(#1): XSS — escapeHTML 保护 confirm/prompt 模板中的所有用户输入 2026-06-16 12:40:01 +08:00
tianhao ff9c7cd218 init: MetonaToast v2.0.0 基线 — 已完成改进(模板抽象/constants拆分/测试增强) 2026-06-16 12:39:36 +08:00