Compare commits

...

22 Commits

Author SHA1 Message Date
Tom Moor f8a3670475 lint 2021-06-08 20:20:45 -07:00
Tom Moor 329d7b6a9c attempt defaults 2021-06-08 20:11:05 -07:00
Tom Moor e40b107504 shrug2 2021-06-06 12:20:57 -07:00
Tom Moor d9845c10d5 dupe 2021-06-06 12:03:24 -07:00
Tom Moor 3946231975 shrug 2021-06-06 11:29:17 -07:00
Tom Moor 3cbe32a46c Trying different splitchunks config 2021-06-05 18:48:43 -07:00
Tom Moor 5b48af4b95 Merge branch 'main' into fix/2163 2021-06-05 09:55:16 -07:00
Tom Moor 7e1a0f5580 fix: date-fns imports back to regular style 2021-06-04 18:27:35 -07:00
Tom Moor d12e04d650 Merge branch 'main' into fix/2163 2021-06-04 18:19:07 -07:00
Saumya Pandey 7f19c16b34 Import functions from date-fns/esm in app 2021-06-04 17:42:06 +05:30
Saumya Pandey 761959ff7e Revert "Use more specifics format functions"
This reverts commit 43d1002402.
2021-06-04 15:11:57 +05:30
Saumya Pandey 8eb5fe6eaf Merge branch 'fix/2163' of https://github.com/outline/outline into fix/2163 2021-06-04 14:08:29 +05:30
Saumya Pandey 43d1002402 Use more specifics format functions 2021-06-04 14:08:09 +05:30
Tom Moor 4941971064 Merge branch 'main' into fix/2163 2021-06-03 22:03:23 -07:00
Saumya Pandey e7dab890fe Revert "Using dynamic import for locale"
This reverts commit 7f0fc684cf.
2021-06-03 17:43:49 +05:30
Saumya Pandey 7f0fc684cf Using dynamic import for locale 2021-06-03 17:14:07 +05:30
Saumya Pandey 846a39d3d3 Change import style 2021-06-03 11:44:27 +05:30
Saumya Pandey 4c182ec869 Merge branch 'main' of https://github.com/outline/outline into fix/2163 2021-06-03 02:51:28 +05:30
Saumya Pandey a21aac1d24 Add pt_BR to locales object 2021-06-03 02:40:50 +05:30
Saumya Pandey c2959dc63a Upgrade date-fns package 2021-06-03 02:18:24 +05:30
Saumya Pandey 6104156915 Move up portuguese, brazilian 2021-06-02 11:32:48 +05:30
Saumya Pandey c527ce493d Add Portugese, Brazil to language options 2021-06-02 11:27:14 +05:30
27 changed files with 85 additions and 69 deletions
@@ -1,5 +1,5 @@
// @flow
import format from "date-fns/format";
import { format } from "date-fns";
import * as React from "react";
import { NavLink } from "react-router-dom";
import styled, { withTheme } from "styled-components";
@@ -37,7 +37,7 @@ class RevisionListItem extends React.Component<Props> {
</Author>
<Meta>
<Time dateTime={revision.createdAt} tooltipDelay={250}>
{format(revision.createdAt, "MMMM Do, YYYY h:mm a")}
{format(Date.parse(revision.createdAt), "MMMM do, yyyy h:mm a")}
</Time>
</Meta>
{showMenu && (
+2 -2
View File
@@ -1,5 +1,5 @@
// @flow
import distanceInWordsToNow from "date-fns/distance_in_words_to_now";
import { formatDistanceToNow } from "date-fns";
import { sortBy } from "lodash";
import { observer } from "mobx-react";
import * as React from "react";
@@ -59,7 +59,7 @@ function DocumentViews({ document, isOpen }: Props) {
? t("Currently editing")
: t("Currently viewing")
: t("Viewed {{ timeAgo }} ago", {
timeAgo: distanceInWordsToNow(
timeAgo: formatDistanceToNow(
view ? new Date(view.lastViewedAt) : new Date()
),
});
+14 -13
View File
@@ -1,20 +1,21 @@
// @flow
import distanceInWordsToNow from "date-fns/distance_in_words_to_now";
import format from "date-fns/format";
import { format, formatDistanceToNow } from "date-fns";
import { enUS, de, fr, es, it, ko, ptBR, pt, zhCN, ru } from "date-fns/locale";
import * as React from "react";
import Tooltip from "components/Tooltip";
import useUserLocale from "hooks/useUserLocale";
const locales = {
en: require(`date-fns/locale/en`),
de: require(`date-fns/locale/de`),
es: require(`date-fns/locale/es`),
fr: require(`date-fns/locale/fr`),
it: require(`date-fns/locale/it`),
ko: require(`date-fns/locale/ko`),
pt: require(`date-fns/locale/pt`),
zh: require(`date-fns/locale/zh_cn`),
ru: require(`date-fns/locale/ru`),
en_US: enUS,
de_DE: de,
es_ES: es,
fr_FR: fr,
it_IT: it,
ko_KR: ko,
pt_BR: ptBR,
pt_PT: pt,
zh_CN: zhCN,
ru_RU: ru,
};
let callbacks = [];
@@ -64,7 +65,7 @@ function LocaleTime({
};
}, []);
let content = distanceInWordsToNow(dateTime, {
let content = formatDistanceToNow(Date.parse(dateTime), {
addSuffix,
locale: userLocale ? locales[userLocale] : undefined,
});
@@ -78,7 +79,7 @@ function LocaleTime({
return (
<Tooltip
tooltip={format(dateTime, "MMMM Do, YYYY h:mm a")}
tooltip={format(Date.parse(dateTime), "MMMM do, yyyy h:mm a")}
delay={tooltipDelay}
placement="bottom"
>
+2 -2
View File
@@ -1,5 +1,5 @@
// @flow
import distanceInWordsToNow from "date-fns/distance_in_words_to_now";
import { formatDistanceToNow } from "date-fns";
import * as React from "react";
const LocaleTime = React.lazy(() =>
@@ -15,7 +15,7 @@ type Props = {
};
function Time(props: Props) {
let content = distanceInWordsToNow(props.dateTime, {
let content = formatDistanceToNow(Date.parse(props.dateTime), {
addSuffix: props.addSuffix,
});
+1 -1
View File
@@ -8,5 +8,5 @@ export default function useUserLocale() {
return undefined;
}
return auth.user.language.split("_")[0];
return auth.user.language;
}
+1 -2
View File
@@ -1,6 +1,5 @@
// @flow
import addDays from "date-fns/add_days";
import differenceInDays from "date-fns/difference_in_days";
import { addDays, differenceInDays } from "date-fns";
import invariant from "invariant";
import { action, computed, observable, set } from "mobx";
import parseTitle from "shared/utils/parseTitle";
+5 -1
View File
@@ -3,7 +3,6 @@ import * as React from "react";
import { Switch, Redirect, type Match } from "react-router-dom";
import Archive from "scenes/Archive";
import Collection from "scenes/Collection";
import KeyedDocument from "scenes/Document/KeyedDocument";
import DocumentNew from "scenes/DocumentNew";
import Drafts from "scenes/Drafts";
import Error404 from "scenes/Error404";
@@ -23,6 +22,11 @@ import { matchDocumentSlug as slug } from "utils/routeHelpers";
const SettingsRoutes = React.lazy(() =>
import(/* webpackChunkName: "settings" */ "./settings")
);
const KeyedDocument = React.lazy(() =>
import(
/* webpackChunkName: "keyed-document" */ "scenes/Document/KeyedDocument"
)
);
const NotFound = () => <Search notFound />;
const RedirectDocument = ({ match }: { match: Match }) => (
+7 -4
View File
@@ -1,5 +1,5 @@
// @flow
import distanceInWordsToNow from "date-fns/distance_in_words_to_now";
import { formatDistanceToNow } from "date-fns";
import invariant from "invariant";
import { deburr, sortBy } from "lodash";
import { observable } from "mobx";
@@ -94,8 +94,11 @@ class DataLoader extends React.Component<Props> {
// search for exact internal document
const slug = parseDocumentSlug(term);
try {
const { document } = await this.props.documents.fetch(slug);
const time = distanceInWordsToNow(document.updatedAt, {
const {
document,
}: { document: Document } = await this.props.documents.fetch(slug);
const time = formatDistanceToNow(Date.parse(document.updatedAt), {
addSuffix: true,
});
return [
@@ -118,7 +121,7 @@ class DataLoader extends React.Component<Props> {
return sortBy(
results.map((document) => {
const time = distanceInWordsToNow(document.updatedAt, {
const time = formatDistanceToNow(document.updatedAt, {
addSuffix: true,
});
return {
@@ -1,5 +1,5 @@
// @flow
import distanceInWordsToNow from "date-fns/distance_in_words_to_now";
import { formatDistanceToNow } from "date-fns";
import invariant from "invariant";
import { observer } from "mobx-react";
import { GlobeIcon, PadlockIcon } from "outline-icons";
@@ -118,9 +118,12 @@ function SharePopover({ document, share, sharedParent, onSubmit }: Props) {
<>
.{" "}
{t("The shared link was last accessed {{ timeAgo }}.", {
timeAgo: distanceInWordsToNow(share.lastAccessedAt, {
addSuffix: true,
}),
timeAgo: formatDistanceToNow(
Date.parse(share.lastAccessedAt),
{
addSuffix: true,
}
),
})}
</>
)}
+2 -2
View File
@@ -1,5 +1,5 @@
// @flow
import distanceInWordsToNow from "date-fns/distance_in_words_to_now";
import { formatDistanceToNow } from "date-fns";
import { observer } from "mobx-react";
import { EditIcon } from "outline-icons";
import * as React from "react";
@@ -52,7 +52,7 @@ function UserProfile(props: Props) {
? t("Joined")
: t("Invited")}{" "}
{t("{{ time }} ago.", {
time: distanceInWordsToNow(new Date(user.createdAt)),
time: formatDistanceToNow(new Date(user.createdAt)),
})}
{user.isAdmin && (
<StyledBadge primary={user.isAdmin}>{t("Admin")}</StyledBadge>
+1 -1
View File
@@ -92,7 +92,7 @@
"compressorjs": "^1.0.7",
"copy-to-clipboard": "^3.0.6",
"core-js": "^3.10.2",
"date-fns": "1.29.0",
"date-fns": "2.22.1",
"dd-trace": "^0.32.2",
"debug": "^4.1.1",
"dotenv": "^4.0.0",
+2 -2
View File
@@ -1,5 +1,5 @@
// @flow
import format from "date-fns/format";
import { format } from "date-fns";
import Router from "koa-router";
import { v4 as uuidv4 } from "uuid";
import { NotFoundError } from "../errors";
@@ -39,7 +39,7 @@ router.post("attachments.create", auth(), async (ctx) => {
const bucket = acl === "public-read" ? "public" : "uploads";
const key = `${bucket}/${user.id}/${s3Key}/${name}`;
const credential = makeCredential();
const longDate = format(new Date(), "YYYYMMDDTHHmmss\\Z");
const longDate = format(new Date(), "yyyyMMdd'T'HHmmss'Z'");
const policy = makePolicy(credential, longDate, acl, contentType);
const endpoint = publicS3Endpoint();
const url = `${endpoint}/${key}`;
+1 -1
View File
@@ -1,5 +1,5 @@
// @flow
import subDays from "date-fns/sub_days";
import { subDays } from "date-fns";
import debug from "debug";
import Router from "koa-router";
import { AuthenticationError } from "../errors";
+1 -1
View File
@@ -1,5 +1,5 @@
/* eslint-disable flowtype/require-valid-file-annotation */
import subDays from "date-fns/sub_days";
import { subDays } from "date-fns";
import TestServer from "fetch-test-server";
import app from "../app";
import { Attachment, Document } from "../models";
+1 -1
View File
@@ -1,6 +1,6 @@
// @flow
import passport from "@outlinewiki/koa-passport";
import addMonths from "date-fns/add_months";
import { addMonths } from "date-fns";
import debug from "debug";
import Koa from "koa";
import bodyParser from "koa-body";
+1 -1
View File
@@ -1,5 +1,5 @@
// @flow
import subMinutes from "date-fns/sub_minutes";
import { subMinutes } from "date-fns";
import Router from "koa-router";
import { find } from "lodash";
import { AuthorizationError } from "../../errors";
+1 -2
View File
@@ -1,7 +1,6 @@
// @flow
import crypto from "crypto";
import addMinutes from "date-fns/add_minutes";
import subMinutes from "date-fns/sub_minutes";
import { addMinutes, subMinutes } from "date-fns";
import JWT from "jsonwebtoken";
import { v4 as uuidv4 } from "uuid";
import { languages } from "../../shared/i18n";
+1 -1
View File
@@ -1,5 +1,5 @@
// @flow
import subMilliseconds from "date-fns/sub_milliseconds";
import { subMilliseconds } from "date-fns";
import { USER_PRESENCE_INTERVAL } from "../../shared/constants";
import { User } from "../models";
import { DataTypes, Op, sequelize } from "../sequelize";
+1 -1
View File
@@ -1,5 +1,5 @@
// @flow
import subHours from "date-fns/sub_hours";
import { subHours } from "date-fns";
import type { Event } from "../events";
import { socketio } from "../main";
import {
+1 -1
View File
@@ -1,7 +1,7 @@
// @flow
import querystring from "querystring";
import * as Sentry from "@sentry/node";
import addMonths from "date-fns/add_months";
import { addMonths } from "date-fns";
import { type Context } from "koa";
import { pick } from "lodash";
import { User, Event, Team } from "../models";
+1 -1
View File
@@ -1,5 +1,5 @@
// @flow
import subMinutes from "date-fns/sub_minutes";
import { subMinutes } from "date-fns";
import JWT from "jsonwebtoken";
import { AuthenticationError } from "../errors";
import { Team, User } from "../models";
+1 -2
View File
@@ -1,6 +1,5 @@
// @flow
import addMinutes from "date-fns/add_minutes";
import subMinutes from "date-fns/sub_minutes";
import { addMinutes, subMinutes } from "date-fns";
import { type Request } from "koa";
import { OAuthStateMismatchError } from "../errors";
import { getCookieDomain } from "./domains";
+4 -5
View File
@@ -2,8 +2,7 @@
import crypto from "crypto";
import * as Sentry from "@sentry/node";
import AWS from "aws-sdk";
import addHours from "date-fns/add_hours";
import format from "date-fns/format";
import { addHours, format } from "date-fns";
import fetch from "fetch-with-proxy";
const AWS_SECRET_ACCESS_KEY = process.env.AWS_SECRET_ACCESS_KEY;
@@ -36,7 +35,7 @@ export const makeCredential = () => {
const credential =
AWS_ACCESS_KEY_ID +
"/" +
format(new Date(), "YYYYMMDD") +
format(new Date(), "yyyyMMdd") +
"/" +
AWS_REGION +
"/s3/aws4_request";
@@ -62,7 +61,7 @@ export const makePolicy = (
{ "x-amz-credential": credential },
{ "x-amz-date": longDate },
],
expiration: format(tomorrow, "YYYY-MM-DDTHH:mm:ss\\Z"),
expiration: format(tomorrow, "yyyy-MM-dd'T'HH:mm:ss'Z'"),
};
return Buffer.from(JSON.stringify(policy)).toString("base64");
@@ -71,7 +70,7 @@ export const makePolicy = (
export const getSignature = (policy: any) => {
const kDate = hmac(
"AWS4" + AWS_SECRET_ACCESS_KEY,
format(new Date(), "YYYYMMDD")
format(new Date(), "yyyyMMdd")
);
const kRegion = hmac(kDate, AWS_REGION);
const kService = hmac(kRegion, "s3");
+1
View File
@@ -13,6 +13,7 @@ export const languageOptions = [
{ label: "Français (France)", value: "fr_FR" },
{ label: "Italiano (Italia)", value: "it_IT" },
{ label: "한국어 (Korean)", value: "ko_KR" },
{ label: "Português (Brazil)", value: "pt_BR" },
{ label: "Português (Portugal)", value: "pt_PT" },
{ label: "Pусский (Россия)", value: "ru_RU" },
];
+4 -7
View File
@@ -1,8 +1,5 @@
// @flow
import subDays from "date-fns/sub_days";
import subMonth from "date-fns/sub_months";
import subWeek from "date-fns/sub_weeks";
import subYear from "date-fns/sub_years";
import { subDays, subMonths, subWeeks, subYears } from "date-fns";
export function subtractDate(
date: Date,
@@ -12,11 +9,11 @@ export function subtractDate(
case "day":
return subDays(date, 1);
case "week":
return subWeek(date, 1);
return subWeeks(date, 1);
case "month":
return subMonth(date, 1);
return subMonths(date, 1);
case "year":
return subYear(date, 1);
return subYears(date, 1);
default:
return date;
}
+16 -5
View File
@@ -99,13 +99,24 @@ module.exports = {
moduleIds: 'hashed',
chunkIds: 'named',
splitChunks: {
chunks: 'async',
minSize: 20000,
minChunks: 1,
maxAsyncRequests: 30,
maxInitialRequests: 30,
enforceSizeThreshold: 50000,
cacheGroups: {
vendor: {
defaultVendors: {
test: /[\\/]node_modules[\\/]/,
name: 'vendors',
chunks: 'initial',
priority: -10,
reuseExistingChunk: true,
},
},
},
default: {
minChunks: 2,
priority: -20,
reuseExistingChunk: true,
}
}
}
}
};
+4 -4
View File
@@ -4386,10 +4386,10 @@ data-urls@^2.0.0:
whatwg-mimetype "^2.3.0"
whatwg-url "^8.0.0"
date-fns@1.29.0:
version "1.29.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
integrity sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==
date-fns@2.22.1:
version "2.22.1"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.22.1.tgz#1e5af959831ebb1d82992bf67b765052d8f0efc4"
integrity sha512-yUFPQjrxEmIsMqlHhAhmxkuH769baF21Kk+nZwZGyrMoyLA+LugaQtC0+Tqf9CBUUULWwUJt6Q5ySI3LJDDCGg==
dd-trace@^0.32.2:
version "0.32.2"