状态栏配置
“优秀的反馈机制应该像呼吸一样自然。”
状态栏是编辑器的信息中心,它以简洁的方式呈现编辑器的各种状态。
基础配置
interface StatusBarConfig {
// 基础样式
className?: string;
style?: React.CSSProperties;
// 显示项配置
features?: {
error?: boolean; // 错误信息
cursorPosition?: boolean;// 光标位置
documentSize?: boolean; // 文档大小
validStatus?: boolean; // 验证状态
};
}
💡 设计理念: 状态栏遵循”少即是多”的原则,只显示最必要的信息,避免干扰用户的编辑体验。
信息定制
格式化配置
可以自定义各类信息的展示格式:
format?: {
bytes?: (bytes: number) => string;
position?: (line: number, col: number) => string;
error?: (error: string) => string;
}
示例:
<JsonEditor
statusBarConfig={{
format: {
// 自定义文件大小显示
bytes: (bytes) => {
if (bytes < 1024) return `${bytes} B`;
return `${(bytes / 1024).toFixed(1)} KB`;
},
// 简化错误信息
error: (error) => error.split(':')[0]
}
}}
/>
图标配置
可以自定义状态图标:
icons?: {
error?: React.ReactNode;
valid?: React.ReactNode;
editing?: React.ReactNode;
}
布局调整
layout?: {
order?: string[]; // 信息项顺序
dividerStyle?: React.CSSProperties; // 分隔符样式
}
使用场景
基础模式
// 默认配置,显示所有信息
<JsonEditor />
精简模式
// 只显示必要信息
<JsonEditor
statusBarConfig={{
features: {
error: true,
validStatus: true
}
}}
/>
自定义模式
// 定制显示内容和样式
<JsonEditor
statusBarConfig={{
features: {
error: true,
cursorPosition: true
},
className: "custom-status",
format: {
position: (line, col) => `${line}:${col}`
}
}}
/>
🎯 小贴士: 状态栏的设计重点是提供清晰的反馈,而不是成为功能的堆砌。选择性地显示真正重要的信息,往往能带来更好的用户体验。