LastSessionsView
- added missing localization - no reload on delete
This commit is contained in:
parent
9b6bb7f126
commit
a576e91290
|
@ -1,9 +1,10 @@
|
||||||
|
|
||||||
import moment from 'moment/min/moment-with-locales';
|
import moment from 'moment/min/moment-with-locales';
|
||||||
|
import {i18n} from './i18n';
|
||||||
|
|
||||||
|
|
||||||
function timeSince(timeStamp, lang = 'de') {
|
function timeSince(timeStamp) {
|
||||||
moment.locale(lang);
|
moment.locale(i18n.locale);
|
||||||
|
|
||||||
const now = Math.floor((new Date()).getTime() / 1000);
|
const now = Math.floor((new Date()).getTime() / 1000);
|
||||||
const secondsPast = now - timeStamp;
|
const secondsPast = now - timeStamp;
|
||||||
|
@ -23,7 +24,7 @@ function timeSince(timeStamp, lang = 'de') {
|
||||||
else if (timeStampDate.getDate() + 1 == dateNow.getDate())
|
else if (timeStampDate.getDate() + 1 == dateNow.getDate())
|
||||||
dateStr = "Gestern, " + timeStampMoment.format("HH:mm");
|
dateStr = "Gestern, " + timeStampMoment.format("HH:mm");
|
||||||
else {
|
else {
|
||||||
dateStr = timeStampMoment.format("ddd, DD.MM.YY um HH:mm");
|
dateStr = timeStampMoment.format("llll");
|
||||||
}
|
}
|
||||||
return dateStr;
|
return dateStr;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,8 @@ const translation_store = {
|
||||||
settings: "Settings",
|
settings: "Settings",
|
||||||
lastSessions: "Last Sessions",
|
lastSessions: "Last Sessions",
|
||||||
mainMenu_social: "Social",
|
mainMenu_social: "Social",
|
||||||
mainMenu_swimNow: "Swim now"
|
mainMenu_swimNow: "Swim now",
|
||||||
|
delete_session_button: "Delete",
|
||||||
},
|
},
|
||||||
de : {
|
de : {
|
||||||
connecting: "Verbindung aufbauen",
|
connecting: "Verbindung aufbauen",
|
||||||
|
@ -23,6 +24,7 @@ const translation_store = {
|
||||||
lastSessions: "Letzte Sessions",
|
lastSessions: "Letzte Sessions",
|
||||||
mainMenu_social: "Freunde",
|
mainMenu_social: "Freunde",
|
||||||
mainMenu_swimNow: "Jetzt schwimmen",
|
mainMenu_swimNow: "Jetzt schwimmen",
|
||||||
|
delete_session_button: "Löschen",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ function SessionCardBehindSwipe(props) {
|
||||||
style={sessionCardStyles.deleteButton}
|
style={sessionCardStyles.deleteButton}
|
||||||
onPress={props.onDelete}
|
onPress={props.onDelete}
|
||||||
>
|
>
|
||||||
<Text style={{ fontSize: 18, color: "white" }}>Löschen</Text>
|
<Text style={{ fontSize: 18, color: "white" }}>{i18n.t('delete_session_button')}</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
|
@ -137,9 +137,6 @@ function parsePropfind(text) {
|
||||||
const parser = new XMLParser();
|
const parser = new XMLParser();
|
||||||
const xmlDoc = parser.parseFromString(text);
|
const xmlDoc = parser.parseFromString(text);
|
||||||
|
|
||||||
//const parser = new DOMParser();
|
|
||||||
//const xmlDoc = parser.parseFromString(text, "text/xml");
|
|
||||||
|
|
||||||
const responses = xmlDoc.getElementsByTagName("D:response");
|
const responses = xmlDoc.getElementsByTagName("D:response");
|
||||||
let result = [];
|
let result = [];
|
||||||
for (let i = 0; i < responses.length; ++i) {
|
for (let i = 0; i < responses.length; ++i) {
|
||||||
|
@ -183,6 +180,7 @@ async function getFullData(swimTrackerHost, analysisSettings) {
|
||||||
const da = new DataAnalysis();
|
const da = new DataAnalysis();
|
||||||
e.analysis = da.analyze(analysisSettings, e.startTime, e.values);
|
e.analysis = da.analyze(analysisSettings, e.startTime, e.values);
|
||||||
}
|
}
|
||||||
|
console.log("full data", parsed);
|
||||||
return parsed;
|
return parsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,9 +201,14 @@ class LastSessionsView extends React.Component {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const deleteSession = async sessionFileName => {
|
const deleteSession = async sessionFileName => {
|
||||||
this.setState({ sessions: null });
|
const filteredSession = this.state.sessions.filter((element) => element.name != sessionFileName);
|
||||||
await request({ url: "http://" + this.props.swimTrackerHost + "/webdav/" + sessionFileName, method: "DELETE" });
|
this.setState({ sessions: filteredSession });
|
||||||
this.setState({ sessions: await getFullData(this.props.swimTrackerHost, this.props.analysisSettings) });
|
request({ url: "http://" + this.props.swimTrackerHost + "/webdav/" + sessionFileName, method: "DELETE" })
|
||||||
|
.then((value) => console.log("Successfully deleted", sessionFileName, value))
|
||||||
|
.catch((err) => console.error("Failed to delete", sessionFileName, err));
|
||||||
|
//this.setState({ sessions: null });
|
||||||
|
//await request({ url: "http://" + this.props.swimTrackerHost + "/webdav/" + sessionFileName, method: "DELETE" });
|
||||||
|
//this.setState({ sessions: await getFullData(this.props.swimTrackerHost, this.props.analysisSettings) });
|
||||||
};
|
};
|
||||||
|
|
||||||
const onRefresh = async () => {
|
const onRefresh = async () => {
|
||||||
|
|
|
@ -21,7 +21,12 @@ as of 2023-09
|
||||||
`npx expo install react-native-web react-dom @expo/webpack-config`
|
`npx expo install react-native-web react-dom @expo/webpack-config`
|
||||||
|
|
||||||
|
|
||||||
3. Install Dependencies
|
3. Run
|
||||||
|
------
|
||||||
|
npx expo start -w
|
||||||
|
|
||||||
|
|
||||||
|
4. Install Dependencies
|
||||||
-----------------------
|
-----------------------
|
||||||
use `npx expo install` instead of `yarn add` !
|
use `npx expo install` instead of `yarn add` !
|
||||||
|
|
||||||
|
@ -56,3 +61,8 @@ react-xml-parser
|
||||||
# Graph
|
# Graph
|
||||||
react-native-svg
|
react-native-svg
|
||||||
|
|
||||||
|
# Time since
|
||||||
|
|
||||||
|
|
||||||
|
# to be replaced
|
||||||
|
react-native-swipe-list-view
|
||||||
|
|
Loading…
Reference in New Issue