5 Commits

7 changed files with 74 additions and 17 deletions

View File

@@ -74,6 +74,13 @@ export const SignatureCard = ({ signature, onDelete, onUpdate }: SignatureCardPr
<h3 className="text-white font-medium text-lg">
{signature.signame || 'Unnamed Signature'}
</h3>
{signature.note && (
<div className="mt-2">
<Badge variant="outline" className="bg-blue-900/50 text-blue-200 border-blue-500 px-3 py-1 text-sm font-semibold">
{signature.note}
</Badge>
</div>
)}
</div>
{/* Additional Info */}

View File

@@ -30,7 +30,8 @@ export const SignatureEditModal = ({ signature, isOpen, onClose, onSave }: Signa
signame: signature.signame || "",
dangerous: signature.dangerous || false,
scanned: signature.scanned || "",
identifier: signature.identifier || ""
identifier: signature.identifier || "",
note: signature.note || ""
});
const [isLoading, setIsLoading] = useState(false);
@@ -45,7 +46,8 @@ export const SignatureEditModal = ({ signature, isOpen, onClose, onSave }: Signa
type: formData.type === "unknown" ? undefined : formData.type,
signame: formData.signame || undefined,
dangerous: formData.dangerous,
scanned: formData.scanned || undefined
scanned: formData.scanned || undefined,
note: formData.note || undefined
});
onClose();
toast({
@@ -71,7 +73,8 @@ export const SignatureEditModal = ({ signature, isOpen, onClose, onSave }: Signa
signame: signature.signame || "",
dangerous: signature.dangerous || false,
scanned: signature.scanned || "",
identifier: signature.identifier || ""
identifier: signature.identifier || "",
note: signature.note || ""
});
onClose();
};
@@ -152,6 +155,18 @@ export const SignatureEditModal = ({ signature, isOpen, onClose, onSave }: Signa
/>
</div>
{/* Note Field - Add before the Dangerous Flag */}
<div className="space-y-2">
<Label htmlFor="note" className="text-slate-200">Important Note</Label>
<Input
id="note"
value={formData.note}
onChange={(e) => setFormData(prev => ({ ...prev, note: e.target.value }))}
placeholder="Add important information about this signature"
className="bg-slate-700 border-slate-600 text-slate-200"
/>
</div>
{/* Dangerous Flag */}
<div className="flex items-center justify-between">
<Label htmlFor="dangerous" className="text-slate-200">Dangerous</Label>

View File

@@ -117,6 +117,11 @@ export const SignatureListItem = ({ signature, onDelete, onUpdate }: SignatureLi
</Badge>
)}
</h3>
{signature.note && (
<Badge variant="outline" className="bg-blue-900/50 text-blue-200 border-blue-500 px-2 py-0.5 text-sm font-semibold ml-2">
{signature.note}
</Badge>
)}
</div>
</div>

View File

@@ -107,6 +107,7 @@ export type SignatureRecord = {
id: string
identifier: string
name?: string
note?: string
scanned?: string
system: RecordIdString
type?: string
@@ -118,6 +119,7 @@ export type SigviewRecord = {
dangerous?: boolean
id: string
identifier: string
note?: string
scanned?: string
signame?: string
sysid?: RecordIdString

View File

@@ -125,6 +125,9 @@ export const SystemView = () => {
if (updatedSignature.scanned !== undefined) {
updateData.scanned = updatedSignature.scanned;
}
if (updatedSignature.note !== undefined) {
updateData.note = updatedSignature.note;
}
console.log('Update data:', updateData);
@@ -199,7 +202,7 @@ export const SystemView = () => {
}
// Turn off clean mode after use
setCleanMode(false);
// setCleanMode(false);
}
// Save all new/updated signatures

View File

@@ -1,5 +1,28 @@
import { SigviewRecord as Signature } from "@/lib/pbtypes";
const fourOutOfTen = [
"Angel Cartel Occupied Mining Colony",
"Mul-Zatah Monastery",
"Guristas Scout Outpost",
"Sansha's Nation Occupied Mining Colony",
"Serpentis Phi-Outpost",
"Drone Infested Mine",
];
const fiveOutOfTen = [
"Angel's Red Light District",
"Blood Raider Psychotropics Depot",
"Guristas Hallucinogen Supply Waypoint",
"Sansha's Nation Neural Paralytic Facility",
"Serpentis Corporation Hydroponics Site",
"Outgrowth Rogue Drone Hive",
];
function isFourOutOfTen(signature: string): boolean {
return fourOutOfTen.some((s) => signature.includes(s));
}
function isFiveOutOfTen(signature: string): boolean {
return fiveOutOfTen.some((s) => signature.includes(s));
}
export const parseSignature = (text: string): Omit<Signature, 'system' | 'id' | 'sysid'> | null => {
const parts = text.split('\t');
if (parts.length < 4) return null;
@@ -10,12 +33,23 @@ export const parseSignature = (text: string): Omit<Signature, 'system' | 'id' |
return null;
}
let note = "";
const isFour = isFourOutOfTen(parts[3]);
if (isFour) {
note = "4/10";
}
const isFive = isFiveOutOfTen(parts[3]);
if (isFive) {
note = "5/10";
}
return {
identifier: parts[0],
type: parts[2],
signame: parts[3],
scanned: parts.length > 4 ? parts[4] : undefined,
dangerous: false // TODO: Implement dangerous signature detection
dangerous: false, // TODO: Implement dangerous signature detection
note: note,
};
};

View File

@@ -41,17 +41,8 @@ RELEASE_ID=$(echo $RELEASE_RESPONSE | awk -F'"id":' '{print $2+0; exit}')
echo "Release ID: $RELEASE_ID"
echo "Uploading the things..."
WINRELEASE="./build/windows/x64/runner/Release/"
7z a $WINRELEASE/$ZIP $WINRELEASE/*
WINRELEASE="build/bin/signalerr.exe"
curl -X POST \
-H "Authorization: token $TOKEN" \
-F "attachment=@$WINRELEASE/$ZIP" \
"$GITEA/api/v1/repos/$REPO/releases/${RELEASE_ID}/assets?name=$ZIP"
rm $WINRELEASE/$ZIP
ANDROIDRELEASE="./build/app/outputs/flutter-apk/"
mv $ANDROIDRELEASE/app-release.apk $ANDROIDRELEASE/$APK
curl -X POST \
-H "Authorization: token $TOKEN" \
-F "attachment=@$ANDROIDRELEASE/$APK" \
"$GITEA/api/v1/repos/$REPO/releases/${RELEASE_ID}/assets?name=$APK"
-F "attachment=@$WINRELEASE" \
"$GITEA/api/v1/repos/$REPO/releases/${RELEASE_ID}/assets?name=signalerr.exe"