mirror of
https://github.com/FoggedLens/deflock-app.git
synced 2026-02-12 16:52:51 +00:00
51 lines
1.5 KiB
Dart
51 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
import '../dev_config.dart';
|
|
|
|
enum CameraIconType {
|
|
real, // Blue ring - real cameras from OSM
|
|
mock, // White ring - add camera mock point
|
|
pending, // Purple ring - submitted/pending cameras
|
|
editing, // Orange ring - camera being edited
|
|
pendingEdit, // Grey ring - original camera with pending edit
|
|
pendingDeletion, // Red ring - camera pending deletion
|
|
}
|
|
|
|
/// Simple camera icon with grey dot and colored ring
|
|
class CameraIcon extends StatelessWidget {
|
|
final CameraIconType type;
|
|
|
|
const CameraIcon({super.key, required this.type});
|
|
|
|
Color get _ringColor {
|
|
switch (type) {
|
|
case CameraIconType.real:
|
|
return dev.kNodeRingColorReal;
|
|
case CameraIconType.mock:
|
|
return dev.kNodeRingColorMock;
|
|
case CameraIconType.pending:
|
|
return dev.kNodeRingColorPending;
|
|
case CameraIconType.editing:
|
|
return dev.kNodeRingColorEditing;
|
|
case CameraIconType.pendingEdit:
|
|
return dev.kNodeRingColorPendingEdit;
|
|
case CameraIconType.pendingDeletion:
|
|
return dev.kNodeRingColorPendingDeletion;
|
|
}
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Container(
|
|
width: dev.kNodeIconDiameter,
|
|
height: dev.kNodeIconDiameter,
|
|
decoration: BoxDecoration(
|
|
shape: BoxShape.circle,
|
|
color: _ringColor.withOpacity(dev.kNodeDotOpacity),
|
|
border: Border.all(
|
|
color: _ringColor,
|
|
width: getNodeRingThickness(context),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
} |