mirror of
https://github.com/PeWu/topola-viewer.git
synced 2025-12-23 18:50:04 +00:00
Refactoring: moved some source files into subdirectories
This commit is contained in:
parent
f588c62696
commit
a61b4848a5
@ -61,7 +61,7 @@
|
||||
"start": "REACT_APP_GIT_SHA=`git rev-parse --short HEAD` REACT_APP_GIT_TIME=`git log -1 --format=%ci` react-scripts start",
|
||||
"build": "REACT_APP_GIT_SHA=`git rev-parse --short HEAD` REACT_APP_GIT_TIME=`git log -1 --format=%ci` react-scripts build",
|
||||
"test": "react-scripts test --env=jsdom",
|
||||
"prettier": "prettier --write src/**/*.{ts,tsx,json}",
|
||||
"prettier": "prettier --write src/**/*.{ts,tsx,json} && prettier --write src/*.{ts,tsx,json}",
|
||||
"predeploy": "npm run build",
|
||||
"deploy": "gh-pages -d build",
|
||||
"predeploy-wikitree": "npm run build",
|
||||
|
||||
10
src/app.tsx
10
src/app.tsx
@ -1,19 +1,19 @@
|
||||
import * as H from 'history';
|
||||
import * as queryString from 'query-string';
|
||||
import * as React from 'react';
|
||||
import {analyticsEvent} from './analytics';
|
||||
import {analyticsEvent} from './util/analytics';
|
||||
import {Chart, ChartType} from './chart';
|
||||
import {Details} from './details';
|
||||
import {FormattedMessage, InjectedIntl} from 'react-intl';
|
||||
import {getSelection, loadFromUrl, loadGedcom} from './load_data';
|
||||
import {getSoftware, TopolaData} from './gedcom_util';
|
||||
import {getSelection, loadFromUrl, loadGedcom} from './datasource/load_data';
|
||||
import {getSoftware, TopolaData} from './util/gedcom_util';
|
||||
import {IndiInfo} from 'topola';
|
||||
import {intlShape} from 'react-intl';
|
||||
import {Intro} from './intro';
|
||||
import {Loader, Message, Portal, Responsive} from 'semantic-ui-react';
|
||||
import {loadWikiTree, PRIVATE_ID_PREFIX} from './wikitree';
|
||||
import {loadWikiTree, PRIVATE_ID_PREFIX} from './datasource/wikitree';
|
||||
import {Redirect, Route, RouteComponentProps, Switch} from 'react-router-dom';
|
||||
import {TopBar} from './top_bar';
|
||||
import {TopBar} from './menu/top_bar';
|
||||
|
||||
/** Shows an error message in the middle of the screen. */
|
||||
function ErrorMessage(props: {message?: string}) {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import {convertGedcom, TopolaData} from './gedcom_util';
|
||||
import {convertGedcom, TopolaData} from '../util/gedcom_util';
|
||||
import {IndiInfo, JsonGedcomData} from 'topola';
|
||||
|
||||
/**
|
||||
@ -46,11 +46,15 @@ export async function loadFromUrl(
|
||||
console.warn('Failed to load data from session storage: ' + e);
|
||||
}
|
||||
|
||||
const driveUrlMatch1 = url.match(/https:\/\/drive\.google\.com\/file\/d\/(.*)\/.*/);
|
||||
const driveUrlMatch1 = url.match(
|
||||
/https:\/\/drive\.google\.com\/file\/d\/(.*)\/.*/,
|
||||
);
|
||||
if (driveUrlMatch1) {
|
||||
url = `https://drive.google.com/uc?id=${driveUrlMatch1[1]}&export=download`;
|
||||
}
|
||||
const driveUrlMatch2 = url.match(/https:\/\/drive\.google\.com\/open\?id=([^&]*)&?.*/);
|
||||
const driveUrlMatch2 = url.match(
|
||||
/https:\/\/drive\.google\.com\/open\?id=([^&]*)&?.*/,
|
||||
);
|
||||
if (driveUrlMatch2) {
|
||||
url = `https://drive.google.com/uc?id=${driveUrlMatch2[1]}&export=download`;
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
import Cookies from 'js-cookie';
|
||||
import {Date, JsonFam, JsonIndi, DateOrRange} from 'topola';
|
||||
import {GedcomData, TopolaData, normalizeGedcom} from './gedcom_util';
|
||||
import {Date, DateOrRange, JsonFam, JsonIndi} from 'topola';
|
||||
import {GedcomData, normalizeGedcom, TopolaData} from '../util/gedcom_util';
|
||||
import {GedcomEntry} from 'parse-gedcom';
|
||||
import {InjectedIntl} from 'react-intl';
|
||||
|
||||
@ -2,10 +2,10 @@ import * as React from 'react';
|
||||
import flatMap from 'array.prototype.flatmap';
|
||||
import Linkify from 'react-linkify';
|
||||
import {FormattedMessage, InjectedIntl} from 'react-intl';
|
||||
import {GedcomData, pointerToId} from './gedcom_util';
|
||||
import {GedcomData, pointerToId} from './util/gedcom_util';
|
||||
import {GedcomEntry} from 'parse-gedcom';
|
||||
import {intlShape} from 'react-intl';
|
||||
import {translateDate} from './date_util';
|
||||
import {translateDate} from './util/date_util';
|
||||
|
||||
interface Props {
|
||||
gedcom: GedcomData;
|
||||
|
||||
@ -110,9 +110,7 @@ export function Intro() {
|
||||
<p className="ui right aligned version">
|
||||
version: {formatBuildDate(process.env.REACT_APP_GIT_TIME!)} (
|
||||
<a
|
||||
href={`https://github.com/PeWu/topola-viewer/commit/${
|
||||
process.env.REACT_APP_GIT_SHA
|
||||
}`}
|
||||
href={`https://github.com/PeWu/topola-viewer/commit/${process.env.REACT_APP_GIT_SHA}`}
|
||||
>
|
||||
{process.env.REACT_APP_GIT_SHA}
|
||||
</a>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import naturalSort from 'javascript-natural-sort';
|
||||
import lunr from 'lunr';
|
||||
import {idToIndiMap, idToFamMap} from './gedcom_util';
|
||||
import {JsonIndi, JsonFam, JsonGedcomData} from 'topola';
|
||||
import naturalSort from 'javascript-natural-sort';
|
||||
import {idToFamMap, idToIndiMap} from '../util/gedcom_util';
|
||||
import {JsonFam, JsonGedcomData, JsonIndi} from 'topola';
|
||||
|
||||
const MAX_RESULTS = 8;
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
import * as React from 'react';
|
||||
import {formatDateOrRange} from '../util/date_util';
|
||||
import {InjectedIntl} from 'react-intl';
|
||||
import {SearchResult} from './search_index';
|
||||
import {formatDateOrRange} from './date_util';
|
||||
import {JsonIndi} from 'topola';
|
||||
import {SearchResult} from './search_index';
|
||||
|
||||
function getNameLine(result: SearchResult) {
|
||||
const name = [result.indi.firstName, result.indi.lastName].join(' ').trim();
|
||||
@ -2,11 +2,12 @@ import * as queryString from 'query-string';
|
||||
import * as React from 'react';
|
||||
import debounce from 'debounce';
|
||||
import md5 from 'md5';
|
||||
import {analyticsEvent} from './analytics';
|
||||
import wikitreeLogo from './wikitree.png';
|
||||
import {analyticsEvent} from '../util/analytics';
|
||||
import {buildSearchIndex, SearchIndex} from './search_index';
|
||||
import {displaySearchResult} from './search_util';
|
||||
import {FormattedMessage, intlShape} from 'react-intl';
|
||||
import {getLoggedInUserName} from './wikitree';
|
||||
import {getLoggedInUserName} from '../datasource/wikitree';
|
||||
import {IndiInfo, JsonGedcomData} from 'topola';
|
||||
import {Link} from 'react-router-dom';
|
||||
import {RouteComponentProps} from 'react-router-dom';
|
||||
@ -24,7 +25,6 @@ import {
|
||||
SearchResultProps,
|
||||
Responsive,
|
||||
} from 'semantic-ui-react';
|
||||
import wikitreeLogo from './wikitree.png';
|
||||
|
||||
enum WikiTreeLoginState {
|
||||
UNKNOWN,
|
||||
@ -643,11 +643,7 @@ export class TopBar extends React.Component<
|
||||
private fileMenus(screenSize: ScreenSize) {
|
||||
const loadWikiTreeItem = (
|
||||
<>
|
||||
<img
|
||||
src={wikitreeLogo}
|
||||
alt="WikiTree logo"
|
||||
className="menu-icon"
|
||||
/>
|
||||
<img src={wikitreeLogo} alt="WikiTree logo" className="menu-icon" />
|
||||
<FormattedMessage
|
||||
id="menu.select_wikitree_id"
|
||||
defaultMessage="Select WikiTree ID"
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@ -1,4 +1,4 @@
|
||||
import {Date as TopolaDate, DateRange, getDate, DateOrRange} from 'topola';
|
||||
import {Date as TopolaDate, DateOrRange, DateRange, getDate} from 'topola';
|
||||
import {InjectedIntl} from 'react-intl';
|
||||
|
||||
const DATE_QUALIFIERS = new Map([
|
||||
@ -1,3 +1,4 @@
|
||||
import {GedcomEntry, parse as parseGedcom} from 'parse-gedcom';
|
||||
import {
|
||||
JsonFam,
|
||||
JsonGedcomData,
|
||||
@ -6,7 +7,6 @@ import {
|
||||
JsonImage,
|
||||
JsonEvent,
|
||||
} from 'topola';
|
||||
import {GedcomEntry, parse as parseGedcom} from 'parse-gedcom';
|
||||
|
||||
export interface GedcomData {
|
||||
/** The HEAD entry. */
|
||||
Loading…
x
Reference in New Issue
Block a user