From ca255d921056a509f3e3f468fd9c0b54fc0bd4de Mon Sep 17 00:00:00 2001 From: Duale Siad Date: Thu, 27 Oct 2022 10:01:12 +1100 Subject: [PATCH 1/2] Added syntax highlighting for various languages (#4341) Co-authored-by: Tom Moor --- shared/editor/nodes/CodeFence.ts | 25 +++++++++++++++++++++++++ shared/editor/plugins/Prism.ts | 14 +++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/shared/editor/nodes/CodeFence.ts b/shared/editor/nodes/CodeFence.ts index b00302f54..3ee081c7b 100644 --- a/shared/editor/nodes/CodeFence.ts +++ b/shared/editor/nodes/CodeFence.ts @@ -21,24 +21,37 @@ import clike from "refractor/lang/clike"; import csharp from "refractor/lang/csharp"; import css from "refractor/lang/css"; import elixir from "refractor/lang/elixir"; +import erlang from "refractor/lang/erlang"; 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 javascript from "refractor/lang/javascript"; import json from "refractor/lang/json"; 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 objectivec from "refractor/lang/objectivec"; +import ocaml from "refractor/lang/ocaml"; import perl from "refractor/lang/perl"; import php from "refractor/lang/php"; import powershell from "refractor/lang/powershell"; import python from "refractor/lang/python"; import ruby from "refractor/lang/ruby"; import rust from "refractor/lang/rust"; +import scala from "refractor/lang/scala"; import solidity from "refractor/lang/solidity"; import sql from "refractor/lang/sql"; import swift from "refractor/lang/swift"; +import toml from "refractor/lang/toml"; import typescript from "refractor/lang/typescript"; +import visualbasic from "refractor/lang/visual-basic"; import yaml from "refractor/lang/yaml"; +import zig from "refractor/lang/zig"; + import { UserPreferences } from "@shared/types"; import { Dictionary } from "~/hooks/useDictionary"; @@ -59,24 +72,36 @@ const DEFAULT_LANGUAGE = "javascript"; clike, csharp, elixir, + erlang, go, + graphql, + groovy, + haskell, + ini, java, javascript, json, kotlin, + lisp, + lua, markup, objectivec, + ocaml, perl, php, python, powershell, ruby, rust, + scala, sql, solidity, swift, + toml, typescript, + visualbasic, yaml, + zig, ].forEach(refractor.register); export default class CodeFence extends Node { diff --git a/shared/editor/plugins/Prism.ts b/shared/editor/plugins/Prism.ts index 4eb0a2f63..d7f3d7599 100644 --- a/shared/editor/plugins/Prism.ts +++ b/shared/editor/plugins/Prism.ts @@ -12,25 +12,37 @@ export const LANGUAGES = { clike: "C", csharp: "C#", elixir: "Elixir", + erlang: "Erlang", go: "Go", + graphql: "GraphQL", + groovy: "Groovy", + haskell: "Haskell", markup: "HTML", - objectivec: "Objective-C", + ini: "INI", java: "Java", javascript: "JavaScript", json: "JSON", kotlin: "Kotlin", + lisp: "Lisp", + lua: "Lua", mermaidjs: "Mermaid Diagram", + objectivec: "Objective-C", + ocaml: "OCaml", perl: "Perl", php: "PHP", powershell: "Powershell", python: "Python", ruby: "Ruby", rust: "Rust", + scala: "Scala", sql: "SQL", solidity: "Solidity", swift: "Swift", + toml: "TOML", typescript: "TypeScript", + visualbasic: "Visual Basic", yaml: "YAML", + zig: "Zig", }; type ParsedNode = { From c1fb8c74ff79c73b4621276f3c2a60c92bd6d05f Mon Sep 17 00:00:00 2001 From: Mihir Shah <48630359+MihirGH@users.noreply.github.com> Date: Thu, 27 Oct 2022 04:31:28 +0530 Subject: [PATCH 2/2] chore: convert Avatar component to functional component (#4204) (#4337) --- app/components/Avatar/Avatar.tsx | 46 +++++++++++++------------------- 1 file changed, 19 insertions(+), 27 deletions(-) diff --git a/app/components/Avatar/Avatar.tsx b/app/components/Avatar/Avatar.tsx index 290a298d4..5d26fc8ff 100644 --- a/app/components/Avatar/Avatar.tsx +++ b/app/components/Avatar/Avatar.tsx @@ -1,8 +1,7 @@ -import { observable } from "mobx"; -import { observer } from "mobx-react"; import * as React from "react"; import styled from "styled-components"; import User from "~/models/User"; +import useBoolean from "~/hooks/useBoolean"; import placeholder from "./placeholder.png"; type Props = { @@ -16,35 +15,28 @@ type Props = { className?: string; }; -@observer -class Avatar extends React.Component { - @observable - error: boolean; +function Avatar(props: Props) { + const { src, icon, showBorder, ...rest } = props; - static defaultProps = { - size: 24, - }; + const [error, handleError] = useBoolean(false); - handleError = () => { - this.error = true; - }; - - render() { - const { src, icon, showBorder, ...rest } = this.props; - return ( - - - {icon && {icon}} - - ); - } + return ( + + + {icon && {icon}} + + ); } +Avatar.defaultProps = { + size: 24, +}; + const AvatarWrapper = styled.div` position: relative; `;