Merge branch 'main' of github.com:outline/outline

This commit is contained in:
Tom Moor
2022-10-26 19:01:32 -04:00
3 changed files with 57 additions and 28 deletions

View File

@@ -1,8 +1,7 @@
import { observable } from "mobx";
import { observer } from "mobx-react";
import * as React from "react"; import * as React from "react";
import styled from "styled-components"; import styled from "styled-components";
import User from "~/models/User"; import User from "~/models/User";
import useBoolean from "~/hooks/useBoolean";
import placeholder from "./placeholder.png"; import placeholder from "./placeholder.png";
type Props = { type Props = {
@@ -16,35 +15,28 @@ type Props = {
className?: string; className?: string;
}; };
@observer function Avatar(props: Props) {
class Avatar extends React.Component<Props> { const { src, icon, showBorder, ...rest } = props;
@observable
error: boolean;
static defaultProps = { const [error, handleError] = useBoolean(false);
size: 24,
};
handleError = () => { return (
this.error = true; <AvatarWrapper>
}; <CircleImg
onError={handleError}
render() { src={error ? placeholder : src}
const { src, icon, showBorder, ...rest } = this.props; $showBorder={showBorder}
return ( {...rest}
<AvatarWrapper> />
<CircleImg {icon && <IconWrapper>{icon}</IconWrapper>}
onError={this.handleError} </AvatarWrapper>
src={this.error ? placeholder : src} );
$showBorder={showBorder}
{...rest}
/>
{icon && <IconWrapper>{icon}</IconWrapper>}
</AvatarWrapper>
);
}
} }
Avatar.defaultProps = {
size: 24,
};
const AvatarWrapper = styled.div` const AvatarWrapper = styled.div`
position: relative; position: relative;
`; `;

View File

@@ -21,24 +21,37 @@ import clike from "refractor/lang/clike";
import csharp from "refractor/lang/csharp"; import csharp from "refractor/lang/csharp";
import css from "refractor/lang/css"; import css from "refractor/lang/css";
import elixir from "refractor/lang/elixir"; import elixir from "refractor/lang/elixir";
import erlang from "refractor/lang/erlang";
import go from "refractor/lang/go"; import go from "refractor/lang/go";
import graphql from "refractor/lang/graphql";
import groovy from "refractor/lang/groovy";
import haskell from "refractor/lang/haskell";
import ini from "refractor/lang/ini";
import java from "refractor/lang/java"; import java from "refractor/lang/java";
import javascript from "refractor/lang/javascript"; import javascript from "refractor/lang/javascript";
import json from "refractor/lang/json"; import json from "refractor/lang/json";
import kotlin from "refractor/lang/kotlin"; import kotlin from "refractor/lang/kotlin";
import lisp from "refractor/lang/lisp";
import lua from "refractor/lang/lua";
import markup from "refractor/lang/markup"; import markup from "refractor/lang/markup";
import objectivec from "refractor/lang/objectivec"; import objectivec from "refractor/lang/objectivec";
import ocaml from "refractor/lang/ocaml";
import perl from "refractor/lang/perl"; import perl from "refractor/lang/perl";
import php from "refractor/lang/php"; import php from "refractor/lang/php";
import powershell from "refractor/lang/powershell"; import powershell from "refractor/lang/powershell";
import python from "refractor/lang/python"; import python from "refractor/lang/python";
import ruby from "refractor/lang/ruby"; import ruby from "refractor/lang/ruby";
import rust from "refractor/lang/rust"; import rust from "refractor/lang/rust";
import scala from "refractor/lang/scala";
import solidity from "refractor/lang/solidity"; import solidity from "refractor/lang/solidity";
import sql from "refractor/lang/sql"; import sql from "refractor/lang/sql";
import swift from "refractor/lang/swift"; import swift from "refractor/lang/swift";
import toml from "refractor/lang/toml";
import typescript from "refractor/lang/typescript"; import typescript from "refractor/lang/typescript";
import visualbasic from "refractor/lang/visual-basic";
import yaml from "refractor/lang/yaml"; import yaml from "refractor/lang/yaml";
import zig from "refractor/lang/zig";
import { UserPreferences } from "@shared/types"; import { UserPreferences } from "@shared/types";
import { Dictionary } from "~/hooks/useDictionary"; import { Dictionary } from "~/hooks/useDictionary";
@@ -59,24 +72,36 @@ const DEFAULT_LANGUAGE = "javascript";
clike, clike,
csharp, csharp,
elixir, elixir,
erlang,
go, go,
graphql,
groovy,
haskell,
ini,
java, java,
javascript, javascript,
json, json,
kotlin, kotlin,
lisp,
lua,
markup, markup,
objectivec, objectivec,
ocaml,
perl, perl,
php, php,
python, python,
powershell, powershell,
ruby, ruby,
rust, rust,
scala,
sql, sql,
solidity, solidity,
swift, swift,
toml,
typescript, typescript,
visualbasic,
yaml, yaml,
zig,
].forEach(refractor.register); ].forEach(refractor.register);
export default class CodeFence extends Node { export default class CodeFence extends Node {

View File

@@ -12,25 +12,37 @@ export const LANGUAGES = {
clike: "C", clike: "C",
csharp: "C#", csharp: "C#",
elixir: "Elixir", elixir: "Elixir",
erlang: "Erlang",
go: "Go", go: "Go",
graphql: "GraphQL",
groovy: "Groovy",
haskell: "Haskell",
markup: "HTML", markup: "HTML",
objectivec: "Objective-C", ini: "INI",
java: "Java", java: "Java",
javascript: "JavaScript", javascript: "JavaScript",
json: "JSON", json: "JSON",
kotlin: "Kotlin", kotlin: "Kotlin",
lisp: "Lisp",
lua: "Lua",
mermaidjs: "Mermaid Diagram", mermaidjs: "Mermaid Diagram",
objectivec: "Objective-C",
ocaml: "OCaml",
perl: "Perl", perl: "Perl",
php: "PHP", php: "PHP",
powershell: "Powershell", powershell: "Powershell",
python: "Python", python: "Python",
ruby: "Ruby", ruby: "Ruby",
rust: "Rust", rust: "Rust",
scala: "Scala",
sql: "SQL", sql: "SQL",
solidity: "Solidity", solidity: "Solidity",
swift: "Swift", swift: "Swift",
toml: "TOML",
typescript: "TypeScript", typescript: "TypeScript",
visualbasic: "Visual Basic",
yaml: "YAML", yaml: "YAML",
zig: "Zig",
}; };
type ParsedNode = { type ParsedNode = {