Add changelog display to Last.fm plugin settings
This commit is contained in:
parent
6d7d27b3c5
commit
fb720a4170
4 changed files with 121 additions and 2 deletions
|
|
@ -5,7 +5,7 @@
|
||||||
"id": "492949202121261067"
|
"id": "492949202121261067"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "forked by kmmiio99o",
|
"name": "kmmiio99o",
|
||||||
"id": "879393496627306587"
|
"id": "879393496627306587"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
||||||
35
plugins/Last.fm/src/changelog.ts
Normal file
35
plugins/Last.fm/src/changelog.ts
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
interface ChangelogEntry {
|
||||||
|
version: string;
|
||||||
|
date: string;
|
||||||
|
changes: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export const changelog: ChangelogEntry[] = [
|
||||||
|
{
|
||||||
|
version: "2.1.0",
|
||||||
|
date: "2024-01-15",
|
||||||
|
changes: ["Add changelog display to Last.fm plugin settings"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "2.0.0",
|
||||||
|
date: "2025-09-12",
|
||||||
|
changes: ["Fix settings scrolling"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "1.3.0",
|
||||||
|
date: "2025-09-12",
|
||||||
|
changes: ["fix reanimated"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "1.2.0",
|
||||||
|
date: "2025-09-12",
|
||||||
|
changes: ["test"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: "1.1.0",
|
||||||
|
date: "2025-09-12",
|
||||||
|
changes: ["fixed reanimated issue??"],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const currentVersion = "2.0.0";
|
||||||
49
plugins/Last.fm/src/ui/ChangelogView.tsx
Normal file
49
plugins/Last.fm/src/ui/ChangelogView.tsx
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
import { clipboard } from "@vendetta/metro/common";
|
||||||
|
import { getAssetIDByName } from "@vendetta/ui/assets";
|
||||||
|
import { ErrorBoundary, Forms, General } from "@vendetta/ui/components";
|
||||||
|
import { showToast } from "@vendetta/ui/toasts";
|
||||||
|
import { changelog, currentVersion } from "../changelog";
|
||||||
|
import { React } from "@vendetta/metro/common";
|
||||||
|
|
||||||
|
const { FormRow, FormSection } = Forms;
|
||||||
|
const { View, ScrollView, Text, TouchableOpacity } = General;
|
||||||
|
|
||||||
|
export default function ChangelogView() {
|
||||||
|
return (
|
||||||
|
<ErrorBoundary>
|
||||||
|
<ScrollView style={{ flex: 1 }}>
|
||||||
|
<FormSection title="CURRENT VERSION">
|
||||||
|
<FormRow
|
||||||
|
label={currentVersion}
|
||||||
|
trailing={
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={() => {
|
||||||
|
clipboard.setString(currentVersion);
|
||||||
|
showToast("Version copied to clipboard", getAssetIDByName("toast_copy_link"));
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Text style={{ color: "#72767d", fontSize: 16 }}>Copy</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</FormSection>
|
||||||
|
|
||||||
|
<FormSection title="CHANGELOG">
|
||||||
|
{changelog.map((entry, index) => (
|
||||||
|
<View key={index} style={{ padding: 16, borderBottomWidth: index === changelog.length - 1 ? 0 : 0.5, borderBottomColor: "#292929" }}>
|
||||||
|
<View style={{ flexDirection: "row", justifyContent: "space-between", marginBottom: 8 }}>
|
||||||
|
<Text style={{ color: "#fff", fontWeight: "bold" }}>Version {entry.version}</Text>
|
||||||
|
<Text style={{ color: "#72767d" }}>{entry.date}</Text>
|
||||||
|
</View>
|
||||||
|
{entry.changes.map((change, changeIndex) => (
|
||||||
|
<Text key={changeIndex} style={{ color: "#dcddde", marginLeft: 16, marginTop: 4 }}>
|
||||||
|
• {change}
|
||||||
|
</Text>
|
||||||
|
))}
|
||||||
|
</View>
|
||||||
|
))}
|
||||||
|
</FormSection>
|
||||||
|
</ScrollView>
|
||||||
|
</ErrorBoundary>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -5,6 +5,7 @@ import { getAssetIDByName } from "@vendetta/ui/assets";
|
||||||
import { showToast } from "@vendetta/ui/toasts";
|
import { showToast } from "@vendetta/ui/toasts";
|
||||||
import { React } from "@vendetta/metro/common";
|
import { React } from "@vendetta/metro/common";
|
||||||
import { ScrollView, View } from "react-native";
|
import { ScrollView, View } from "react-native";
|
||||||
|
import { changelog, currentVersion } from "../../changelog";
|
||||||
|
|
||||||
import { currentSettings, pluginState } from "../..";
|
import { currentSettings, pluginState } from "../..";
|
||||||
import Constants from "../../constants";
|
import Constants from "../../constants";
|
||||||
|
|
@ -191,6 +192,40 @@ export default function Settings() {
|
||||||
</View>
|
</View>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
||||||
|
<FormSection title="CHANGELOG">
|
||||||
|
{changelog.map((entry, index) => (
|
||||||
|
<View
|
||||||
|
key={index}
|
||||||
|
style={{
|
||||||
|
padding: 10,
|
||||||
|
borderBottomWidth: index === changelog.length - 1 ? 0 : 0.5,
|
||||||
|
borderBottomColor: "#292929",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flexDirection: "row",
|
||||||
|
justifyContent: "space-between",
|
||||||
|
marginBottom: 8,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<FormText style={{ fontWeight: "bold" }}>
|
||||||
|
Version {entry.version}
|
||||||
|
</FormText>
|
||||||
|
<FormText style={{ opacity: 0.5 }}>{entry.date}</FormText>
|
||||||
|
</View>
|
||||||
|
{entry.changes.map((change, changeIndex) => (
|
||||||
|
<FormText
|
||||||
|
key={changeIndex}
|
||||||
|
style={{ marginLeft: 16, marginTop: 4, opacity: 0.8 }}
|
||||||
|
>
|
||||||
|
• {change}
|
||||||
|
</FormText>
|
||||||
|
))}
|
||||||
|
</View>
|
||||||
|
))}
|
||||||
|
</FormSection>
|
||||||
|
|
||||||
<FormText
|
<FormText
|
||||||
style={{
|
style={{
|
||||||
padding: 16,
|
padding: 16,
|
||||||
|
|
@ -200,7 +235,7 @@ export default function Settings() {
|
||||||
marginBottom: 8,
|
marginBottom: 8,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Version 2.0.0
|
Version {currentVersion}
|
||||||
</FormText>
|
</FormText>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue