Fixed reuploading the same file

This commit is contained in:
Przemek Wiech
2019-04-09 00:12:21 +02:00
parent f590675261
commit 177c721c2f
2 changed files with 15 additions and 3 deletions

View File

@@ -45,9 +45,12 @@ export class App extends React.Component<RouteComponentProps, {}> {
private isNewData( private isNewData(
hash: string | undefined, hash: string | undefined,
url: string | undefined, url: string | undefined,
gedcom: string | undefined,
): boolean { ): boolean {
return ( return (
!!(hash && hash !== this.state.hash) || !!(url && this.state.url !== url) !!(hash && hash !== this.state.hash) ||
!!(url && this.state.url !== url) ||
(!!gedcom && !this.state.loading && !this.state.data)
); );
} }
@@ -77,7 +80,7 @@ export class App extends React.Component<RouteComponentProps, {}> {
if (!url && !hash) { if (!url && !hash) {
this.props.history.replace({pathname: '/'}); this.props.history.replace({pathname: '/'});
} else if (this.isNewData(hash, url)) { } else if (this.isNewData(hash, url, gedcom)) {
try { try {
// Set loading state. // Set loading state.
this.setState( this.setState(

View File

@@ -105,7 +105,16 @@ export class TopBar extends React.Component<
.join('|'); .join('|');
// Hash GEDCOM contents with uploaded image file names. // Hash GEDCOM contents with uploaded image file names.
const hash = md5(md5(data) + imageFileNames); const hash = md5(md5(data) + imageFileNames);
this.props.history.push({
// Use history.replace() when reuploading the same file and history.push() when loading
// a new file.
const search = queryString.parse(this.props.location.search);
const historyPush =
search.file === hash
? this.props.history.replace
: this.props.history.push;
historyPush({
pathname: '/view', pathname: '/view',
search: queryString.stringify({file: hash}), search: queryString.stringify({file: hash}),
state: {data, images: imageMap}, state: {data, images: imageMap},