import type {ButtonConfig} from '../../../index.type';
import type {BimEngine} from '../../../../../bim-engine';

/**
 * 测量按钮配置
 * 使用工厂函数模式，注入 engine 实例
 */
export const createMeasureButton = (engine: BimEngine): ButtonConfig => {
    return {
        id: 'measure',
        groupId: 'group-1',
        type: 'button',
        label: 'toolbar.measure',
        icon: '<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M3 6a3 3 0 0 0-3 3v7a3 3 0 0 0 3 3h18a3 3 0 0 0 3-3V9a3 3 0 0 0-3-3zm6 2H7v5a1 1 0 1 1-2 0V8H3a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1h-2v3a1 1 0 1 1-2 0V8h-2v5a1 1 0 1 1-2 0V8h-2v3a1 1 0 1 1-2 0z" clip-rule="evenodd"/></svg>',
        keepActive: true,
        onClick: (button) => {
            if (button.isActive) {
                engine.measure?.show()
            } else {
                engine.measure?.destroy()
            }
        }
    };
};
