GitFOSS
fix(repository): display correct readme for current folder if present
+ 26
- 14
@@ -1,5 +1,5 @@
 {
-  "_generatedAtUnix": 1663708828286,
+  "_generatedAtUnix": 1663709447382,
   "_hashAlgorithm": "sha1",
   "_version": 2,
   "islands": {

...
@@ -50,7 +50,7 @@
       "pathSource": "./app/views/auth/RegisterView.tsx"
     },
     "RepositoryBrowserView": {
-      "hash": "7ab4730aead5bb85352c1c9a896f3336bf3ae743",
+      "hash": "e21209cae1f4aaab6678ac937259c085084abbff",
       "pathSource": "./app/views/repository/RepositoryBrowserView.tsx"
     },
     "RepositoryCreateView": {

...
@@ -58,7 +58,7 @@
       "pathSource": "./app/views/repository/RepositoryCreateView.tsx"
     },
     "RepositoryDetailsView": {
-      "hash": "886a76224620bcbb3ff973bbeb2fccfd944e21cd",
+      "hash": "c63cf850a8c1a9fecd09fb2823fabba543616338",
       "pathSource": "./app/views/repository/RepositoryDetailsView.tsx"
     },
     "RepositoryExploreView": {

app/components/MarkdownToJsx.tsx
@@ -50,7 +50,10 @@ export const MarkdownToJsx: VFC<MarkdownToJsxProps> = ({
             </StyledBlockquoteCard>
           ),
           code: ({ className, children: code, ...props }) => {
-            const language = className.replace("lang-", "");
+            const language = (className || "lang-plaintext").replace(
+              "lang-",
+              ""
+            );
             const html = Prism.highlight(
               code,
               Prism.languages[language],

app/controllers/repository/getRepositoryBrowserView.ts
@@ -45,12 +45,16 @@ const getRepositoryBrowserView: ReqHandler = async (request, reply) => {
       repo,
       path,
       Const.README_FILE_NAMES,
-      ref
+      ref === "main" ? "HEAD" : ref
     );
 
     const readmeFileContent =
       readmeFiles.length >= 1
-        ? await repoService.getRepositoryFileContent(repo, readmeFiles[0], ref)
+        ? await repoService.getRepositoryFileContent(
+            repo,
+            `${path}${readmeFiles[0]}`,
+            ref === "main" ? "HEAD" : ref
+          )
         : null;
 
     return reqHandler<RepositoryDetailsViewProps>(RepositoryDetailsView.name, {

app/services/repository/isFileInRepositoryPath.ts
@@ -61,7 +61,7 @@ const makeIsFileInRepositoryPath: ServiceMethodFactory<
 
       const files = gitLsTreeResult.split("\n");
       return files.reduce((acc, currFile) => {
-        if (filesToMatch.includes(currFile)) {
+        if (currFile.trim() !== "" && filesToMatch.includes(currFile)) {
           acc = [...acc, currFile];
         }
         return acc;

app/views/repository/RepositoryBrowserView.tsx
@@ -26,18 +26,19 @@ const RepositoryBrowserView: ReactView<RepositoryBrowserViewProps> = ({
   linguistInfos,
   parentOrg,
   path,
-  ref,
   repo,
 }) => {
   return (
     <Layout {...commonProps}>
       <PageWrapper>
         <h1>
-          {parentOrg.displayName || parentOrg.slug}
+          <a href={`/${parentOrg.slug}`}>
+            {parentOrg.displayName || parentOrg.slug}
+          </a>
           {" / "}
-          {repo.displayName || repo.slug}
-          {" / "}
-          {ref}
+          <a href={`/${parentOrg.slug}/${repo.slug}`}>
+            {repo.displayName || repo.slug}
+          </a>
           {" / "}
           {path}
         </h1>

app/views/repository/RepositoryDetailsView.tsx
@@ -47,9 +47,13 @@ const RepositoryDetailsView: ReactView<RepositoryDetailsViewProps> = ({
     <Layout {...commonProps}>
       <PageWrapper>
         <h1>
-          {parentOrg.displayName || parentOrg.slug}
+          <a href={`/${parentOrg.slug}`}>
+            {parentOrg.displayName || parentOrg.slug}
+          </a>
           {" / "}
-          {repo.displayName || repo.slug}
+          <a href={`/${parentOrg.slug}/${repo.slug}`}>
+            {repo.displayName || repo.slug}
+          </a>
           {" ∙ "}
           <span style={{ textTransform: "capitalize" }}>
             ({repo.visibility.toLowerCase()})